Flask中从字符串到unixepoch的日期转换

时间:2013-04-07 12:18:01

标签: python sqlite datetime flask

我正在使用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;')

这个select在entry.date中给出空值,在 flask 模板中的entry.temperature中给出期望值:

 --- 22.31

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

1 个答案:

答案 0 :(得分:1)

好的,朋友找我找错了:

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

解决方案:“strftime('%s',日期)为日期,温度......”,然后将strftime的结果放入entries.date中。