【发布时间】:2019-10-27 20:04:29
【问题描述】:
我创建了一个连接到 Postgres 数据库的烧瓶 API,我 我正在尝试创建一条路线,该路线将为我提供数据库中的历史数据,以便我可以接收 json 以在前端(ReactJS)上显示为图表。
现在,我在 pgAdmin 上成功运行了以下查询:
SELECT humidity, temperature, "waterpumpState", "dateTime" from public."systemInformation" where "systemInformation"."dateTime" > current_date - interval '7 days'
我用 SQLAlchemy 创建了这个数据库模型:
class statusInformation(db.Model):
__tablename__ = 'systemInformation'
id = db.Column(db.Integer, unique=True, primary_key=True)
humidity = db.Column(db.Float, nullable=False)
temperature = db.Column(db.Float, nullable=False)
waterpumpState = db.Column(db.Boolean, nullable=False)
clientOverride = db.Column(db.Boolean, nullable=False)
humidityLevelSetting = db.Column((db.String(250)))
dateTime = db.Column(db.TIMESTAMP, server_default=db.func.current_timestamp(), nullable=False)
从此表中,我想使用 SQLAlchemy 查询仅提取湿度、温度和日期时间。
我想获取从这一刻起不超过 7 天的所有条目,以便我可以将它们映射到我调用此路由时显示的 JSON,响应我想创建一个显示的 ReactJS 图表7 天内的湿度和温度水平。
这是我尝试在 python 中使用日期时间对 SQLAlchemy 进行的操作:
def get_historic_data():
now = datetime.now()
seven_days_ago = now - timedelta(days=7)
historicData = statusInformation.query.filter(statusInformation.dateTime >= seven_days_ago)
return statusInformation.historyDetailedInformationJson(historicData)
historyDetailedInformationJson 只是一个应该返回给我的 JSON 模板,它看起来像这样:
def historyDetailedInformationJson(self):
return{
'humidity':self.humidity,
'temperature':self.temperature,
'waterpumpState':self.waterpumpState,
'dateTime':self.dateTime
}
这是我尝试从 get_historic_data 打印结果时得到的结果:
SELECT "systemInformation".id AS "systemInformation_id", "systemInformation".emInformation".temperature AS "systemInformation_temperature", "systemInformaterpumpState", "systemInformation"."clientOverride" AS "systemInformation_clilSetting" AS "systemInformation_humidityLevelSetting", "systemInformation"."d
FROM "systemInformation"
WHERE "systemInformation"."dateTime" >= %(dateTime_1)s
如果有人能帮我澄清问题,我将不胜感激。 谢谢。
【问题讨论】:
标签: python json postgresql sqlalchemy flask-sqlalchemy