Jinja2是一个单独的Python包,Flask依赖Jinja2,安装Flask时会自动安装Jinja2。Jinja2可以将数据和模板结合在一起生成动态文本。
来看一个最简单的视图函数:
@app.route('/')
def hello_world():return 'Hello World!'
这个视图函数返回的是一个字符串,在实际的web开发中,为了使网站更加的美观,需要渲染一个富文本标签的页面,通常包含大量的HTML代码,如果把这些HTML代码用字符串的形式写在视图函数中,后期的代码维护将会变得及其困难。因此,在Flask中,渲染HTML通常会交给模板引擎来做,Flask中默认配套的模板引擎是Jinja2,Jinja2的作者也是Flask的作者,Jinja2可以独立于Flask使用,比如在Django中也可以使用Jinja2。JInja2是一个高效、可扩展的模板引擎。
(PS)渲染:简单的说就是把后台数据渲染到页面当中去。
Jinja2是一个Python模板引擎,它提供一种将数据和模板结合在一起,以生成动态文本的方法。它能够生成具有清晰而简洁的结构、更易读取的网页代码。
Jinja2使用可扩展模板语言,并带有一组便捷的属性和函数来控制复杂的小部件,以及可读性和可维护性良好的模板功能。它具有可扩展的结构,可以给模板定义自己的工具集,并允许模板之间创建关系。Jinja2具有自定义块和过滤器。
Jinja2支持完全可定制的模板来格式化输出,允许开发人员使用动态 HTML、XML和JSON模板。它还支持对密码字符串的转换、对只包含数字的HTML实体的转换以及模板变量的安全替换。
此外,Jinja2通过提供可以重用的功能使内容易维护,并允许生成复杂模板代码而不降低可读性和可维护性。可以把模板加载到主机/客户端,也可以把它们保存到数据库中,并且可以使用其他技术来组合模板,从而更加灵活地创建复杂的页面结构。
前端开发人员经常使用Jinja2来通过增加可重用支持减少维护成本,并且可以针对不同的客户端特性生成动态页面。
它可以把各种模板文件格式转换为标准的Web格式,表示所有可能的输入项。因此,可以通过Jinja2轻松地渲染内容,使之更加符合用户的需求。
记录在Flask专栏四~九。