在本章中,我们会使用Flask Jinja内置的模板语言,基于SQLAlchemy模型动态地创建HTML页面。我们会学到Jinja的一些函数,它们可以自动生成HTML,还可以对数据进行某些修改后再将其显示在页面上。本章的最后会讲解如何在Jinja中自动创建表单,以及检查表单的正确性。
Jinja的语法
Jinja是用Python实现的模板语言。模板语言是一种被设计来自动生成文档的简单文本格式。在模板语言中,一般都会把一些变量传给模板,替换模板的特定位置上预先定义好的占位变量名。在Jinja中,变量名是由{ { }}来表示的。这种{ { }}语法叫作变量代码块。另外还有用{% %}定义的控制代码块,可以实现一些语言层次的功能,比如循环或者if语句。例如,如果把上一节中的Post对象传给Jinja,则我们的代码可以这样写:
<h1>{ { post.title }} </h1>
生成的HTML如下: