首页 > 学院 > 开发设计 > 正文

【Flask】FlaskWeb开发上手点滴(02)-模板

2019-11-10 19:20:55
字体:
来源:转载
供稿:网友

模板是一个包含响应的文本的文件,期中包含用占位变量表示的动态部分,其具体值只在请求的上下文中才能知道。使用真实替换变量,再返回最终得到的响应字符串,这一过程称为“渲染”。 在Falsk中使用Jinja2这个模板引擎。

2.1 jinja2模板引擎

2.1.1渲染模板

默认情况下,Falsk在程序/项目的文件夹中的templates子文件夹中寻找模板。我们可以将定义好的模板保存在这个文件夹中。 现在我们改造下“01讲中的首例”:

from flask import Flask,render_templatefrom flask import requestapp = Flask(__name__)@app.route('/')def index(): user_agent=request.headers.get('User-Agent')return render_template('index.html',user_agent=user_agent)@app.route('/user/<name>')def hello_world(name):return render_template('user.html',name=name)if __name__ == '__main__':app.run(debug=True)

然后分别在templates文件夹下新建两个文件index.html和user.html, 这里写图片描述 内容分别如下:

#index.html<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body> <p>欢迎您!您的浏览器是:{{user_agent}}</p></body></html>#user.html<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body> <h1 style="color: coral">Hello {{name}}</h1></body></html>

从这里我们可以看到:Falsk提供render_template函数把jinja2模板引擎集成到了程序中。 render_template函数的第一个参数是模板的文件名。随后的参数都是键值对,表示末班中变量对应的真实值。

2.1.2jinja2变量过滤器

这里写图片描述 注意:很多情况下需要显示变量中存储的HTML代码,这时就需要使用safe过滤器。但是,千万不要在不可信的值上使用safe过滤器,例如用户在表单中输入的文本。

2.1.3控制结构


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表