业务逻辑和表现逻辑混在一起会导致代码难以理解和维护,因此Flask将表现逻辑移到模板中以提升应用的可维护性。下面以网站注册账户为例,说明一下什么是业务逻辑,什么是表现逻辑:
- 业务逻辑:服务器收到包含用户输入的请求,然后把Flask请求分派给视图函数,这个视图函数需要访问数据库,添加新用户;
- 表现逻辑:业务逻辑结束后,生成响应会送浏览器;
其中模板是包含响应文本的文件,并使用占位符表示动态部分,其中具体值只在请求的上下文中才知道。使用真实值替换变量,再返回最终得到的响应字符串,即渲染的过程。Flask使用一个名为Jinja2的强大模板引擎。
一. Jiaja2渲染模板
默认情况下,Flask在应用目录中的templates子目录里寻找模板:
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/user/<name>')
def hello_world(name):
return render_template('user.html', name=name)
if __name__ == '__main__':
app.run()
模板user.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Hello</title>
</head>
<body>
<h1>Hello, {
{ name }}</h1>
</body>
</html>
启动WEB服务器,访问