【问题标题】:How can I change the templating framework in Django?如何更改 Django 中的模板框架?
【发布时间】:2012-04-09 18:09:07
【问题描述】:
我想将 Mustache 集成到我的 Django 应用程序中。我需要采取哪些步骤才能将 Django 的模板系统完全替换为 Mustache?
我想让 render_to_response 与 Mustache 模板一起正常工作,通过上下文(STATIC_URL、请求等)传递所有正确的变量。
【问题讨论】:
标签:
python
django
django-templates
template-engine
mustache
【解决方案1】:
基本上,您必须将render_to_response 函数替换为您自己的实现,该实现使用您选择的模板系统。 Django 的render_to_response 特定于 Django 的模板系统。这个函数简单地包装了一些在使用 django 模板引擎时使用的常见的 grunt-work。 Django's tutorial 中介绍了它们的工作原理。
使用django.template.RequestContext 获取在TEMPLATE_CONTEXT_PROCESSORS 设置中指定的所有上下文变量(其中定义了STATIC_URL、请求等)。由于RequestContext 的行为类似于字典,因此您应该能够毫无问题地将其传递给 mustache。 RequestContext 在其构造函数中获取请求对象。
最后,别忘了返回正确的HttpResponse 对象!
因为我不是一个段落迷:
- 创建 RequestContext 实例。
- 将收到的字典与 RequestContext 实例合并。
- 将模板呈现为字符串。
- 用 HttpResponse 实例包装最终字符串。