Я создал API фляги, который подключен к базе данных Postgres, я
я пытаюсь создать маршрут, который даст мне исторические данные из базы данных, чтобы я мог получить 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 дней.
Это то, что я пытался сделать с SQLAlchemy в python, используя datetime:
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
Если кто-нибудь может помочь мне прояснить проблему, я был бы очень признателен.
Спасибо.