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 才会根据模型进行创建.因此,更新表的唯一方式就是先删除旧表,不 ...
随机推荐
- DNA甲基化检测服务
DNA甲基化检测服务 DNA甲基化是最早发现的基因表观修饰方式之一,真核生物中的甲基化仅发生于胞嘧啶,即在DNA甲基化转移酶(DNMTs)的作用下使CpG二核苷酸5'-端的胞嘧啶转变为5'-甲基胞嘧啶 ...
- 执行程序---system
头文件:#include<stdlib.h> 函数原型:int system(const char *command) 参数说明:command被执行的命令,字符串格式 返回值:成功则返回 ...
- bitset相关
位关联容器 bitset<1000> s ;//新建一个容量为1000位的bitset s.test(k); //读取第k位,结果为0或1 s.set(k); ...
- SharedPreferences的基本使用-----存,删,改,查
1.创建一个SharedPreferences对象 SharedPreferences spf = context.getSharedPreferences("imageload" ...
- 实现字符串函数,strlen(),strcpy(),strcmp(),strcat()
实现字符串函数,strlen(),strcpy(),strcmp(),strcat() #include<stdio.h> #include<stdlib.h> int my_ ...
- Nginx的两种负载均衡搭建(Tomcat版)
前言 Nginx的负载均衡一般采用upstream来实现,但是,还有另一种文件拓展的方式,同样可以实现负载均衡. 一.一般的负载均衡 upstream my_server { server local ...
- Navicat如何导出数据库的svg、pdf,png图片
有时候各位可能有这么一种感觉,如果一个数据库中的表太多的话,查看起来不大方便,如果你习惯用navicat软件来查看er图的话,那也是更困难了,这里介绍一种方法,就是把这些关系结构导出一个可以用浏览器打 ...
- Spring MVC controller 被执行两次
interceptor 被执行两次 后来发现 时controller被执行两次 后来发现是jsp页面有个: <img src="#" > 导致被执行两次. 解决方案:去 ...
- iterm2 学习笔记
itrem 笔记 选中即复制,有两种方式. 在新Tab中自动使用前一Tab路径,该怎么用? 系统热键:option+space 自动完成:输入打头几个字母,然后输入command+“;” iterm2 ...
- Paul Simon -- Duncan
Paul Simon -- Duncan (London,January 1972) Couple in the next roomBound to win a prizeTheyve been go ...