在 Django 项目中设置 Jinja2
Posted
技术标签:
【中文标题】在 Django 项目中设置 Jinja2【英文标题】:Setup Jinja2 in Django Project 【发布时间】:2013-06-02 16:30:41 【问题描述】:新手问题,但我在 Jinja2 官方网站或谷歌搜索上找不到足够的分步说明。
我目前的 Django 项目已经完成了一半,我不能再在 Django 模板中使用 queryset 过滤器了。所以决定切换到 Jinja2。
我做了什么:pip install jinja2 到 virtualenv。然后我尝试在我的模板文件中使用 Jinja 语法,但失败了......显然很遗憾
我还需要做什么才能让 Jinja2 正常工作?
【问题讨论】:
【参考方案1】:我只想推荐两个我觉得非常有用的替代方案。
Jinja 模板标签
一个是 jinja 模板标签,它可以让你在 django 模板中使用 jinja
% jinja % this_is_jinja(True)% endjinja %
当您不能/不想破坏现有模板的其余部分时非常有用。
http://www.mellowmorning.com/2010/08/24/mixing-django-with-jinja2-without-losing-template-debugging/
条件模板引擎
另一个是基于文件名的模板引擎的条件加载(注意我写这个是因为我使用了两种模板语言):
https://github.com/yuchant/django-jinja2
【讨论】:
大+1。两者都是很好的建议。如果您可以添加一两行来对比它们的优缺点(安全性/性能),那将非常有帮助。 @buffer 我不明白安全性是如何影响到这个的(如果你的模板被入侵了……你的服务器被入侵了)。至于性能,我没有给你任何基准,但我对 Web 开发性能的一般结论是它应该最后处理(永远不要过早优化),因为无论如何都必须缓存所有内容才能达到商业级别的流量。在这些功能中,没有什么让我感到惊讶的是,与默认模板语言相比,这是性能问题的危险信号。【参考方案2】:您需要切换到使用 Jinja2 模板而不是 Django 模板的呈现方法 - coffin 有一个您可以使用名为 render_to_response 的助手,它应该可以工作。
【讨论】:
以上是关于在 Django 项目中设置 Jinja2的主要内容,如果未能解决你的问题,请参考以下文章
在 windows 的 django 中设置一个 cron 作业
如何在 django 中设置 celeryconfig 文件