【问题标题】:Setup Jinja2 in Django Project在 Django 项目中设置 Jinja2
【发布时间】:2013-06-02 16:30:41
【问题描述】:

新手问题,但我在 Jinja2 官方网站或谷歌搜索上找不到足够的分步说明。

我目前的 Django 项目已经完成了一半,我不能再在 Django 模板中使用 queryset 过滤器了。所以决定切换到 Jinja2。

我做了什么:pip install jinja2 到 virtualenv。然后我尝试在我的模板文件中使用 Jinja 语法,但失败了......显然很遗憾

我还需要做什么才能让 Jinja2 正常工作?

【问题讨论】:

    标签: django django-templates 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 的助手,它应该可以工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-18
      • 1970-01-01
      • 2016-10-09
      • 2017-05-06
      • 2014-07-15
      • 1970-01-01
      • 1970-01-01
      • 2015-07-29
      相关资源
      最近更新 更多