说实话,关于自定义扩展的开发,Jinja2的官方文档写得真心的简单。到目前为止网上可参考的资料也非常少,你必须得好好读下源码,还好依然有乐于奉献的大牛们分享了些文章来帮助我理解怎么开发扩展。本文我就完...
Flask的Jinja2模板引擎 — 本地化(7th)
一个强大的工具一般都支持扩展或插件的开发功能,来允许第三方通过开发新扩展或插件,扩充工具本身功能,并可以贡献给社区。Jinja2也不例外,Jinja2本身提供了一部分扩展,你可以在程序中启用。同时,你...
Flask的Jinja2模板引擎 — 块与宏(6th)
考虑到模板代码的重用,Jinja2提供了块 (Block)和宏 (Macro)的功能。块功能有些类似于C语言中的宏,原理就是代码替换;而宏的功能有些类似于函数,可以传入参数。本篇我们就来介绍下块和宏的...
Flask的Jinja2模板引擎 — 全局函数(5th)
Jinja2模板引擎的另一个辅助函数功能,即全局函数Global Functions。如果说过滤器是一个变量转换函数,测试器是一个返回布尔值的函数,那全局函数就可以是任意函数。可以在任一场景使用,没有...
Flask的Jinja2模板引擎 — 测试器(4th)
Jinja2中的测试器Test和过滤器非常相似,区别是测试器总是返回一个布尔值,它可以用来测试一个变量或者表达式,你需要使用”is”关键字来进行测试。测试器一般都是跟着if控制语句一起使用的。下面我们...
Flask的Jinja2模板引擎 — 过滤器(3rd)
我所了解的模板引擎大部分都会提供类似Jinja2过滤器的功能,只不过叫法不同罢了。比如PHP Smarty中的Modifiers(变量调节器或修饰器),FreeMarker中的Build-ins(内建...
flask jinja2 UnicodeDecodeError 解决方法
当有中文传递给jinja2模板会报如下错误:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6 in position 0: or...
Flask的Jinja2模板引擎 — 上下文环境(2nd)
Flask每个请求都有生命周期,在生命周期内请求有其上下文环境Request Context。作为在请求中渲染的模板,自然也在请求的生命周期内,所以Flask应用中的模板可以使用到请求上下文中的环境变...
Flask的Jinja2模板引擎 — 控制语句与表达式(1st)
Flask的模板功能是基于Jinja2模板引擎来实现的。模板文件存放在当前目前下的子目录templates(一定要使用这个名字)下。
main.py 代码如下:
from flask impo...