Flask从入门到精通之Flask-Moment本地化日期和时间
Moment.js 是一个简单易用的轻量级JavaScript日期处理类库,提供了日期格式化、日期解析等功能。它支持在浏览器和NodeJS两种环境中运行。此类库能够 将给定的任意日期转换成多种不同的格式,具有强大的日期计算功能,同时也内置了能显示多样的日期形式的函数。Flask-Moment是一个集成moment.js到Jinja2模板的Flask扩展。安装Flask-Moment的方式如下:
pip install Flask-Moment
初始化Flask-Moment
from flask.ext.moment import Moment
moment = Moment(app)
除了moment.js,Flask-Moment 还依赖jquery.js。要在HTML 文档的某个地方引入这两个库,可以直接引入,这样可以选择使用哪个版本,也可使用扩展提供的辅助函数,从内容分发网络(Content Delivery Network,CDN)中引入通过测试的版本。Bootstrap 已经引入了jquery.js,因此只需引入moment.js 即可。下面展示了如何在基模板的scripts 块中引入这个库。
{% 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' 到'LLLL' 分别对应不同的复杂度。format() 函数还可接受自定义的格式说明符。第二行中的fromNow() 渲染相对时间戳,而且会随着时间的推移自动刷新显示的时间。这
个时间戳最开始显示为“a few seconds ago”,但指定refresh 参数后,其内容会随着时间的推移而更新。如果一直待在这个页面,几分钟后,会看到显示的文本变成“a minuteago”“2 minutes ago”等。
Flask-Moment 实现了moment.js 中的format()、fromNow()、fromTime()、calendar()、valueOf()和unix() 方法。你可查阅文档(http://momentjs.com/docs/#/displaying/)学习moment.js 提供的全部格式化选项。
Flask-Moment 渲染的时间戳可实现多种语言的本地化。语言可在模板中选择,把语言代码传给lang() 函数即可{{ moment.lang('es') }}。下面是常用的格式话参数:
YYYY |
2014 |
年份 |
YY |
14 |
2个字符表示的年份 |
Q |
1..4 |
季度 |
M MM |
4..04 |
月份 |
MMM MMMM |
4月..四月 |
根据moment.locale()中的设置显示月份 |
D DD |
1..31 |
一月中的第几天 |
Do |
1日..31日 |
一月中的第几天 |
DDD DDDD |
1..365 |
一年中的第几天 |
X |
1410715640.579 |
时间戳 |
x |
1410715640579 |
时间戳 |
Flask从入门到精通之Flask-Moment本地化日期和时间的更多相关文章
- Flask从入门到精通之flask安装
使用虚拟环境 安装Flask最简单的方式是使用虚拟环境,虚拟环境是python解释器的一个私有副本,在这个环境中你可以安装私有包,而且不会影响系统中安装的全局的Python解释器.虚拟环境非常有用,可 ...
- Flask从入门到精通之Flask表单渲染成HTML
表单字段是可调用的,在模板中调用后会渲染成HTML.假设视图函数把一个NameForm 实例通过参数form 传入模板,在模板中可以生成一个简单的表单,如下所示: <form method=&q ...
- Flask从入门到精通之Flask表单
Flask请求对象包含客户端发出的所有请求信息.其中,request.form 能获取POST 请求中提交的表单数据.尽管Flask 的请求对象提供的信息足够用于处理Web 表单,但有些任务很单调,而 ...
- Flask从入门到精通之flask程序入门
初始化 所有Flask程序都必须创建一个程序实例,Web服务器使用一种名为Web服务器网关接口的的协议(WSGI),把接收自客户端的所有请求转发给这个对象处理.程序实例是Flask类的对象,使用下面代 ...
- Flask从入门到精通之flask扩展
Flask被设计成可扩展形式,因此并没有提供一些重要的功能,比如数据库和用户认证,所以开发者可以自由选择最适合程序的包,或者按需求自行开发.社区成员开发了大量不同用途的扩展,如果这还不能满足需求,你还 ...
- Flask-Moment本地化日期和时间
moment.js客户端开源代码库,可以在浏览器中渲染日期和时间.Flask-Moment是一个flask程序扩展,能把moment.js集成到Jinja2模板中. 1.安装 pip install ...
- Flask从入门到精通之大型程序的结构二
一.程序包 程序包用来保存程序的所有代码.模板和静态文件.我们可以把这个包直接称为app(应用),如果有需求,也可使用一个程序专用名字.templates 和static 文件夹是程序包的一部分,因此 ...
- Flask从入门到精通之大型程序的结构一
尽管在单一脚本中编写小型Web 程序很方便,但这种方法并不能广泛使用.程序变复杂后,使用单个大型源码文件会导致很多问题.不同于大多数其他的Web 框架,Flask 并不强制要求大型项目使用特定的组织方 ...
- Flask从入门到精通之使用Flask-Migrate实现数据库迁移
在开发程序的过程中,你会发现有时需要修改数据库模型,而且修改之后还需要更新数据库.仅当数据库表不存在时,Flask-SQLAlchemy 才会根据模型进行创建.因此,更新表的唯一方式就是先删除旧表,不 ...
随机推荐
- Codeforces 660A. Co-prime Array 最大公约数
A. Co-prime Array time limit per test 1 second memory limit per test 256 megabytes input standard in ...
- 2018.09.23 codeforces 1053A. In Search of an Easy Problem(gcd)
传送门 今天的签到题. 有一个很显然的结论,gcd(n∗m,k)≤2gcd(n*m,k)\le 2gcd(n∗m,k)≤2. 本蒟蒻是用的行列式求三角形面积证明的. 如果满足这个条件,就可以直接构造出 ...
- redis学习-有序集合(zset)常用命令
zadd:有序集合增加一个或者多个键值对 与set集合不同,zset添加的时候需要 指定 score,这个是用来排名的 zrange:返回指定范围的键 zcount:返回集合指定范围的个数(以每个键值 ...
- 马婕 2014MBA专硕考试 报刊选读 4 朝鲜战争会爆发吗?(转)
http://blog.sina.com.cn/s/blog_3e66af4601016ela.html War unlikely, but Koreans still on cliff edge 战 ...
- docker镜像基本操作
操作镜像 使用 docker 命令行操作 docker 镜像 获取镜像 使用「docker pull +镜像名称」从网络上下载image镜像 core@localhost ~ $ docker pul ...
- sqlserver 清除日志
要使用Master数据库执行 DUMP TRANSACTION 数据库名 WITH NO_LOG 2.再打开企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件-- ...
- DatePickerDialog TimePickerDialog
MainActivity.java public class MainActivity extends Activity { @Override public ...
- 电信网上营业厅-客户充值缴费时间段数据挖掘--spss
最近研究分析了“云南电信网上营业厅”e9宽带续约缴费的数据,目前宽带续约量为171人,今天需要谈论的是:如何利用SPSS挖掘出“客户充值缴费的时间段”客户喜欢在哪个时间段来网厅进行充值缴费 云南电信网 ...
- [译]Autoprefixer:一个以最好的方式处理浏览器前缀的后处理程序
Autoprefixer解析CSS文件并且添加浏览器前缀到CSS规则里,使用Can I Use的数据来决定哪些前缀是需要的. 所有你需要做的就是把它添加到你的资源构建工具(例如 Grunt)并且可 ...
- 在 Java 中使用 protobuf
在 Java 中使用 protobuf 从 https://github.com/google/protobuf/releases 下载编译器,并设置环境变量. 创建java项目添加protobuf- ...