JSON

自定义jinja2 过滤器

字号+ 作者:H5之家 来源:H5之家 2016-02-14 10:00 我要评论( )

自定义jinja2 过滤器-.Net-爱编程

今天,我们要讲的是自定义jinja2 过滤器这个知识点,因为官方文档对此一代而过,讲得不够清楚,所以我们专门拿出来讲一下。

例子

例子写了两个自定义过滤器,一个是转换字典到字符串的过滤器,一个是返回当前参数的类型的过滤器。

源代码:

https://github.com/lewis617/jinja2-filter

记得给我加星哦!

filter是个函数

filter是个函数,跟angular的过滤器几乎一模一样。参数就是管道(pipe)前面那个变量。比如   123|myfilter,123就是myFilter的参数。如果需要两个参数,则在myFilter后面加(),即123|myFilter(234)。

filter函数写在哪

这是这个是编写filter的关键。filter函数写在app.run前,注册在app.jinja_env.filters中,这是什么意思?看代码:

app = Flask(__name__) # custom filter # convert dict to string def json_dumps(dict): result = json.dumps(dict) return result typeFilter(arg): result = type(arg) return result env = app.jinja_env env.filters[] = json_dumps env.filters[] = typeFilter

就是这么简单!

测试示例代码

第一个过滤器转换字典到字符串,第二个返回当前参数的类型

我们在index.html中编写:

 

dict is {{ dict|typeFilter}} dict | json_dumps is{{ dict|json_dumps |typeFilter}} you can use json_dumps filter to send dict to js,remember to add safe filter, press f12 to test it safe}})

 

然后在app.py中渲染这个html

@app.route() def hello_world(): dict={:,:24} ,dict=dict) : app.run()

结果:

json_dumps可以将dict转为字符串,这样我们用jinja渲染的对象列表之类的就可以,以字符串的形式打印出来,便于我们在开发环境下监视渲染状态。

 

如果您觉得本博客或者程序帮到了您,就赏颗星吧!

 

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
网友点评