关于 jinja2
面向使用 Jinja2 渲染 HTML、邮件、配置文件和代码生成模板的开发者,提供实践指导。内容涵盖环境复用、模板组织及安全渲染。
主要功能
- 01复用环境配置
- 02文件与包模板加载器
- 03模板继承与自定义过滤器
- 04自动转义与沙箱指导
- 05开发时检查未定义变量
适用场景
- 01渲染 HTML 并降低 XSS 风险
- 02在模板间复用布局
- 03处理不可信模板定义
- 04生成配置文件或代码
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ microsoft/ debugpy --skill jinja2安装后在 Claude Code 中输入/jinja2确认已加载。
详细介绍
技能:Jinja2
使用 Jinja2 渲染模板的最佳实践,包括环境、过滤器、自动转义和安全性。
适用场景
使用 Jinja2 渲染模板时应用此技能——例如 HTML 页面、电子邮件、配置文件和代码生成。
环境
- 创建一个
jinja2.Environment(loader=..., autoescape=...),并重复使用。 - 文件模板使用
FileSystemLoader,已安装的包使用PackageLoader。 - 对 HTML 模板启用
autoescape=True,以防止 XSS。
模板
- 使用
{{ variable }}输出内容,使用{% if/for/block %}控制流程。 - 使用模板继承(
{% extends 'base.html' %})复用布局。 - 定义自定义过滤器,以便重复使用转换逻辑。
安全性
- 渲染 HTML 时,始终启用
autoescape=True。 - 对不可信模板使用
SandboxedEnvironment。 - 切勿将用户输入作为模板代码渲染——只能将其作为模板数据。
- 关闭自动转义时,显式使用
|e过滤器。
注意事项
- 不要直接使用
Template(string)——这会绕过环境的加载器和设置。 - 留意未定义变量错误——开发期间使用
undefined=StrictUndefined。 - 避免在模板中编写复杂逻辑——让模板专注于展示。
评论
支持 Markdown