让我们开启Jinja2模板引擎之旅,虽说标题是Flask中的Jinja2,其实介绍的主要是Jinja2本身,Flask是用来做例子的。如果对Flask不熟悉的朋友们建议将本博客的入门系列先看下。怎么,不知道什么是模板引擎?你可以将模板比作MVC模式中的View视图层,而模板引擎就是用来将模板同业务代码分离,并解析模板语言的程序。你可以耐心地看下本系列文章,就能体会到什么是模板引擎了。
系列文章
回顾
我们在Flask入门系列第三篇中已经介绍了Jinja2模板的基本使用方式,让我们先回顾下,把其中的代码拿过来。
Flask Python代码:
from flask import Flask,render_template
app = Flask(__name__)
@app.route('/hello')
@app.route('/hello/')
def hello(name=None):
return render_template('hello.html', name=name)
if __name__ == '__main__':
app.run(host='0.0.0.0', debug=True)
模板代码:
Hello Sample{% if name %}
Hello { { name }}!
{% else %}
Hello World!
{% endif %}
我们了解到,模板的表达式都是包含在分隔符{ { }}内的;控制语句都是包含在分隔符{% %}内的;另外,模板也支持注释,都是包含在分隔符{# #}内,支持块注释。
表达式
表达式一般有这么几种:
最常用的是变量,由Flask渲染模板时传过来,比如上例中的name
也可以是任意一种Python基础类型,比如字符串{ { "Hello" }},用引号括起;或者数值,列表,元祖,字典,布尔值。直接显示基础类型没啥意义,一般配合其他表达式一起用
运算。包括算数运算,如{