模板
Flask 使用 Jinja2 作为模板引擎生成 HTML。模板把页面结构与 Python 逻辑分离,并默认对变量做 HTML 转义,天然防御 XSS。
基本用法
render_template 从应用(或蓝图)的 templates/ 目录查找模板,关键字参数成为模板中的变量。
模板语法
loop 对象提供 index(从 1 起)、first、last 等循环状态。
模板继承
用基础模板定义骨架,子模板只填充差异部分:
复用片段:include 与宏
模板中可直接使用的对象
Flask 自动注入:request、session、g、url_for()、get_flashed_messages()、config。
自定义过滤器与全局变量
转义与安全
- 变量默认转义;确认安全的 HTML 用
{{ content|safe }}输出,但绝不要对用户输入使用 safe。 - Python 端可用
markupsafe.Markup标记安全字符串。
静态文件(CSS/JS/图片)的组织在下一章介绍。