用途:在 Litestar 项目中配置和使用模板渲染,统一处理引擎选择、TemplateConfig 配置、模板响应与上下文构造。
主要能力:支持 Jinja、Mako、MiniJinja 引擎;通过 template_config 在应用级注册一个引擎;使用 directory 或 directory=[...] 配置基于文件的模板目录,或使用 instance= 接管引擎创建与加载器/环境;返回带 template_name 或 template_str 的 Template 响应;提供请求、CSRF 和 URL 辅助函数;通过 engine_callback 集中注册引擎级可调用对象和环境定制。
使用方式:确认安装对应 Litestar extra;按项目选用引擎;用 template_name 处理常规页面与可复用片段,template_str 仅用于小型内联模板;上下文使用字符串键、显式且贴合视图;在模板内使用 url_for 与 url_for_static_asset 生成链接与静态资源地址,表单使用 csrf_input,仅在需另行嵌入令牌时使用 csrf_token;模板目录采用 .jinja2、.mako、.minijinja 等后缀并区分布局、局部与页面模板。
适用场景:文件或字符串模板渲染、多目录查找、自定义引擎环境、HTMX 风格片段响应等。
限制与注意:不要在同一个 TemplateConfig 中混用 directory 与 instance;模板不应承载业务规则、权限检查或数据库查询;避免把大型不透明对象传入上下文;不要硬编码路由或静态资源 URL;模板可调用对象应通过引擎配置一次性注册,而非在处理函数中临时注册。验证需覆盖缺失模板、路由与静态 URL 反解、CSRF 渲染及整页与片段输出。
相关主题:片段化更新可参考 litestar-htmx,响应容器行为参考 litestar-responses,静态资源挂载参考 litestar-static-files,CSRF 配置参考 litestar-security,渲染 HTML 断言参考 litestar-testing。官方文档见 https://docs.litestar.dev/latest/usage/templating.html 与 https://docs.litestar.dev/latest/reference/template.html。