flask中模板日期格式控制和jinja2中模板格式控制
1.flask的模块语言采用的是jinja2,首先说一下jinja2中的模板格式控制的使用,即模板自定义filters的使用。
python的脚本如下(采用的是格式显示日期):
1 from jinja2 import Environment, PackageLoader
2 import datetime
3 env=Environment(loader=PackageLoader('app','templates'))
4 def dateformat(value, format="%Y-%m"):
5 return value.strftime(format)
6 env.filters['dateformat'] = dateformat
7 template=env.get_template('mytemplate.html')
8 print template.render(date=datetime.date(1989,4,9))
由脚本中jinja2的环境配置中可看出,对应此脚本同级的目录有个app/templates/mytemplate.html和__init__.py文件。
mytemplate.html的文件内容如下:
<html>
<body>
<h1>当前时间{{date|dateformat("%Y-%m-%d")}}</h1> //就是调用函数 dateformate(date,"%Y-%m-%d")|{{date|dateformat}}对应函数dateformat(value=date)
</body>
</html>
这样执行python脚本就可以自定义格式输出日期了。
2.下面说一下flask中自定义filters的使用。
摘自网络:
from jinja2.environment import Environment
environment = Environment()
environment.filters['datetimeformat'] = datetimeformat T
his creates a new environment that flask does not know about. You will have to attach it to the environment that flask uses:
app.jinja_env.filters['datetimeformat'] = datetimeformat
所以在flask应用中就不能采用上面的方式了。可采用下面的方式将自定义的filters添加到flask的环境变量中去:
from flask import Flask
app = Flask(__name__)
def datetimeformat(value, format="%Y-%m"):
print value,type(value)
return value.strftime(format)
app.jinja_env.filters['datetimeformat'] = datetimeformat
------------------------------------------------------------------------------------------------------
当然最好自定义函数是从单独包含进来的如下:
import jinja_filters
app =Flask(__name__)
app.jinja_env.filters['filter_name1']= jinja_filters.filter_name1
app.jinja_env.filters['filter_name2']= jinja_filters.filter_name2
这样可以直接在flask应用的模板中直接使用自定义的筛选函数。
最新文章
- windows下redis安装
- HTML标签理解
- VirtualBox-Linux系统安装增强功能
- magento 备份
- 【bzoj1059】矩形游戏
- redolog 大小的实验
- hdu5045:带权二分图匹配
- 继续畅通工程--hdu1879
- FTP下文件夹权限的设置755,766,777,644代表什么意思
- js获取时间和日期,字符串和时间戳之间的转换
- cocos2d-x on wp8架构简单介绍
- ajax问题
- Java数组的排序算法
- Java中Double保留后小数位的几种方法
- jQuery 事件绑定 和 JavaScript 原生事件绑定
- JVM调优入门之初探
- C# 显式转换关键字 explicit
- nodejs源码编译-mipse64el架构
- 【BZOJ5212】[ZJOI2018]历史(Link-Cut Tree)
- SpringMVC的请求处理流程
热门文章
- AutoIT:为文件夹下面的文件批量改名
- Java-Runoob-高级教程-实例-字符串:13. Java 实例 - 字符串格式化
- C# 混淆 反编译
- poj 3243 Clever Y &;&; 1467: Pku3243 clever Y【扩展BSGS】
- Akka源码分析-Serialization
- LuoguP1063 能量项链【区间Dp】
- Java-String 类的常用方法
- _bzoj1008 [HNOI2008]越狱【计数】
- [ZPG TEST 105] 扑克游戏【Huffman】
- 模拟+贪心 SCU 4445 Right turn