跳到主要内容

渲染模板

前言

Flask 默认使用 Jinja2 模板引擎渲染 HTML。详细内容见 jinja2模板 目录:

文件内容
基本使用HelloWorld、渲染变量、if/for 控制语句
控制语句if / for 语法
模板结构模板继承、include、宏
过滤器和测试器内置/自定义过滤器、测试器
示例-网页执行shell命令完整示例(注意安全风险)

基础示例

Flask 默认在 templates 目录查找模板文件:

from flask import Flask, render_template

app = Flask(__name__)


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

渲染变量:

@app.get("/temp/variable")
def temp_variable():
favourite_fruit = request.args.get("fruit")
return render_template("variable.html", favourite_fruit=favourite_fruit)

指定其它模板目录:

app = Flask(__name__, template_folder="templates2")
危险

模板中输出用户输入时注意转义/过滤,避免 XSS;不要像"网页执行 shell 命令"示例那样直接执行用户输入(该示例仅用于学习)。