1.模板概念
观察之前的demo程序,1个视图函数的响应是诸如"<h1>Hello, everyone.</h1>"的html文本;但是常规的视图函数一般经过业务逻辑处理,再生成响应返回给客户端,这两个过程叫做业务逻辑和表现逻辑。
目前来看,demo中的表现逻辑及其简单,所以把业务逻辑和表现逻辑混在一起没有问题,但是如果要表现一个大型表单提交页面,这样的代码结构就难以维护。
常规的方案是,把表现逻辑–响应文本维护到单个文件,通过渲染模块 (render_template) 把html中需要的数据从视图函数中传递过去。默认情况下,Flask在项目文件夹的子文件夹templates寻找模板文件,所以分离出来的模板文件都需保存到/templates。
总的来说,模板是一个包含响应文本的文件,其中包括需要从响应获取的动态数据部分。
2.模板引擎
为了渲染模板,Flask使用了一个名为Jinja2的强大模板引擎。
Jinja2模板就是一个包含响应文本的文件,下面例子展示了简单的不带变量和带变量的模板:
index.html
<h1>Hello, everyone.