Flask-Moment

来源:互联网 发布:三菱系统攻丝编程实例 编辑:程序博客网 时间:2024/06/05 04:16

处理时间和日期
服务器需要统一的时间单,和用户的地理位置无关,一般是使用协调世界时(UTC)
但是用户更希望看到当地时间。采用当地的惯用格式

在服务器上只使用UTC,解决方案:将时间单位发给web浏览器,转换为当地时间,然后渲染
web浏览器,可以获取用户电脑中的时区和区域设置

moment.js

javascript开发的优秀客户端开源代码库。
功能
可以在浏览器中渲染时间和日期

Flask-momnet

是Flask程序扩展,将moment.js集成到jinja2模板中

安装
pip install flask-moment

初始化

 from flask.ext.moment import Moment moment = Moment(app)

Flask-Moment还依赖jquery.js
在HTML文档中引入这两个库
1. 直接引入,可以选择哪个版本
2. 使用扩展提供的辅助函数,
bootstrap引入了jquery.js,只需要运入moment.js即可
在基模板的scripts块中引入,moment.js库

{% block scripts%}{{super()}}{{moment.include_moment()}}{%endblock%}

处理时间戳,flask-moment向模板开放了moment类
将变量current_time传入模板进行渲染

from datetime import datetime@app.route('/')def index():    return render_template('index.html',current_time=datetime.utcnow()))

如何在模板中渲染current_time

<p> The local date and time is {{moment(current_time).format('LLL')}}</p><p> that was {{moment(current_time).fromNow(refresh=True)}}</p>

format(‘LLL’):
根据客户端电脑的时区和区域设置渲染时间和日期
参数:
‘L’‘LLL’对应了不同的复杂度
还接受自定义的格式说明符

fromNow()
渲染相对时间戳,会随着时间的推移自动刷新显示的时间
时间戳最开始显示为a few seconds ago
指定refresh参数后,内容随着时间推移而更新,如果一直待在这个页面,几分钟后显示文本变成a minute ago,2 minute ago

原创粉丝点击