补充谈谈Flask 的Jinja2

补充谈谈Flask 的Jinja2

上篇简单说了Flask Web的为什么要有模板,有哪些模板,今天再简单说说Jinja2模板引擎的较为具体内容。

  1. 关于渲染模板,默认情况下,Flask是在程序文件夹的templates子文件夹中寻找模板的。Flask提供的render_template函数把Jinja2模板引擎继承到程序中。
  2. 关于变量,模板中使用{{name}}结构表示一个变量,它是特殊占位符,告诉模板引擎这个位置的值从渲染模板时使用的数据中获取。Jinja2能识别所有类型的变量,甚至包括列表,字典,对象。还可以使用|过滤器修改变量。
  3. 关于控制结构,Jinja2提供多种控制结构,可以改变模板的渲染流程,包括分支结构if-else,循环结构for。还支持宏,宏类似于python中的函数,通常会将宏保存到单独的文件中,以便重复使用,引入宏用关键字macro。
  4. 关于模板代码复用,模板具有继承方式,类似于python的class继承。继承的实现使用extends关键字,继承模板获取基类模板使用super关键字。


分享到:


相關文章: