渲染模板
前言
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 命令"示例那样直接执行用户输入(该示例仅用于学习)。