3

我正在使用 Flask 在页面上显示日期和温度。数据存储在 SQLite 数据库中。它可以很好地使用日期和时间作为字符串,但是当我尝试将日期和时间转换为 unix 纪元时出现问题。

Python代码:

cur = db.execute('select date,temperature from temperatures where temperatures.date > datetime(\'now\',\'-1hour\', \'localtime\') order by date desc;')
entries = cur.fetchall()
return render_template('dashboard2.html', entries=entries)

模板:

{% for entry in entries %}
{{ entry.date }}  ---  {{ entry.temperature }}
{% endfor %}

结果是:

2013-04-08 21:26:22 --- 22.31

我正在尝试做的事情:

sqlite> select strftime('%s',date),temperature from temperatures where temperatures.date > datetime('now','-1hour', 'localtime') order by date desc;

给出(在 sqlite 控制台中):

(...)
1365340231|22.56
1365340221|22.56
1365340210|22.5
1365340199|22.56
(...)

但:

cur = db.execute('select strftime(\'%s\',date),temperature from temperatures where temperatures.date > datetime(\'now\',\'-1hour\', \'localtime\') order by date desc;')

此选择在 entry.date 中给出空值,在烧瓶模板中在 entry.temperature 中给出预期值:

 --- 22.31

我在下面发布了解决方案。

4

1 回答 1

1

好的,朋友帮我找出错误:

问题是我试图在我的模板中使用值entry.date,但没有与条目中的日期相关联。

解决方案:“strftime('%s', date) as date , temperature ...”,然后将 strftime 的结果按原样放入 entry.date 中。

于 2013-04-08T19:26:07.830 回答