【Flask学习】2.1模板之渲染

1.模板概念

观察之前的demo程序,1个视图函数的响应是诸如"

Hello, everyone.

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

2.模板引擎

为了渲染模板,Flask使用了一个名为Jinja2的强大模板引擎。
Jinja2模板就是一个包含响应文本的文件,下面例子展示了简单的不带变量和带变量的模板:

index.html
<h1>Hello, everyone.h1>

user.html
<h1>Hello, {{ name }}.h1>

3.渲染模板

为了支持分离业务逻辑和表现逻辑,除了创建新的模板文件,还需修改视图函数文件,例如:

from flask import Flask, render_template
...

@app.route('/')
def index():
	return render_template('index.html')

@app.route('/user/')
def user():
	return render_template('user.html', name=name)

Flask的render_template(template_name_or_list, **context)把Jinja2模板引擎集成到了程序中,render_template的第一个参数是模板文件名,随后的参数都是键值对,代表模板中变量对应的真实值。

你可能感兴趣的:(web服务开发,python,flask,python,学习)