问题标签 [jinja2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
362918 浏览

python - 在 jinja 中设置变量

我想知道如何在 jinja 中使用另一个变量设置一个变量。我会解释一下,我有一个子菜单,我想显示哪个链接是活动的。我试过这个:

其中记录类型是为我的模板提供的变量。

0 投票
1 回答
713 浏览

python - 谷歌应用引擎上的 Jinja2 PackageLoader

我想jinja2.PackageLoader在 Google App 引擎上使用,但这似乎取决于pkg_resources,直到 Python 2.6 才添加。我运气不好?

0 投票
1 回答
1177 浏览

python - 如何为 Jinja2 编写“joiner”扩展?

嗨,我一直在尝试为 jinja2 创建一个扩展,该扩展将使用分隔符连接多个项目,同时跳过评估为空白的项目(模板片段)。

有几个这样的片段,你永远不知道哪些是非空的,哪些是非空的。

听起来像是一项微不足道的任务,但我真的很难让它在 jinja2 中工作。也许部分原因是 jinja 不允许定义自定义模板节点。

你有什么建议吗?下面是一个片段,它将完成解析工作,但它缺少评估部分。

0 投票
7 回答
261578 浏览

jinja2 - 在 Jinja2 中,如何测试变量是否未定义?

从 Django 转换,我习惯做这样的事情:

如果我没有将 var1 放入上下文中,它就会起作用。Jinja2 给了我一个未定义的错误。有没有简单的说法{% if var1 == None %}或类似的方法?

0 投票
3 回答
29216 浏览

python - 如何在 Python 中将列表作为变量返回并在 Jinja2 中使用?

我是一个非常年轻的程序员,我正在尝试用 Python 做一些事情,但我被困住了。我在 Couchdb 中有一个用户列表(使用 python couchdb 库和 Flask 框架),他们有一个用户名(即 _id)和电子邮件。我想在 jinja2 模板的选择框中使用电子邮件地址列表。

我的第一个问题是如何访问电子邮件地址。如果我做:

我得到:

所以我可以得到我的电子邮件列表。但是我残酷的缺乏经验的地方在于我不知道如何使用它们。该列表仅存在于 for 循环中。如何将该列表作为可用的变量列表返回?然后如何使该列表出现在我的 jinja2 模板中的选项下拉列表中。我想我需要一个函数,但我是一名绿色程序员。

非常感谢帮助。

0 投票
3 回答
11515 浏览

jinja2 - 如果我们传入模板中不存在的变量,则会在 jinja 中引发异常

当我们传递模板中不存在的变量时,jinja2 是否有方法引发异常?

PS:这与模板中存在变量但未传递时引发异常不同(或相反)。为此,我使用“undefined=StrictUndefined”

0 投票
8 回答
41182 浏览

python - 如何访问 Jinja2 中的部分列表

我正在尝试使用 jinja2 模板语言来返回我的帖子列表中的最后 n(比如 5)个帖子:

不过,这将返回整个列表。你如何剥离第一个或最后 n 个元素?

0 投票
1 回答
3506 浏览

python - Jinja2 - 给定 2 个模板(作为字符串)如何渲染一个扩展另一个模板?

我正在制作一个适用于 Jinja2 模板的简单脚本。现在它只是手动从磁盘读取文件,即没有 Jinja Loaders。我有 2 个字符串(AB),代表 2 个模板。我想让一个模板(B)从另一个()继承A,即我有{% block body %}{% endblock %}A我想让body块成为B的内容。我怎样才能得到这个的渲染输出?

通常我会使用{% extends 'filename' %}inB并且它会使用正确的,但是我没有 A 的文件名(本身)。

0 投票
2 回答
5952 浏览

python - 如何强制 Jinja2 模板重新编译?

我正在尝试在 django 应用程序中切换 Jinja2 模板而不重新启动应用程序。

有人做过吗?基本上,一旦应用了皮肤选择更改,我需要强制 jinja2 重新加载模板。

我试图在模板环境对象上重新创建缓存对象,但没有任何效果。

myskin_utils.py:

我还尝试重新加载包含我的 ENV_OBJECT 的模块

我想即时更改的另一件事是语言,但我想这是一个单独的问题。

感谢您的任何建议。

编辑:我没有使用 jinja2 设置缓存,但我确实看到从 Django 模板切换后使用 Jinja 的速度有所提高,我怀疑模板字节码存在于我的视图函数的编译代码中,但我没有研究细节神社。

我在视图模块的全局命名空间中导入了ENV( CoffinEnvironmentJinja 的子类的一个实例)并调用内部视图函数(Django+Coffin+Jinja2)。EnvironmentENV.get_template()

发现如果我在视图函数中的环境模块上调用 python 的内置reload()函数,模板确实会切换,但我不想将该代码粘贴到每个函数中。

0 投票
2 回答
3458 浏览

django - 带有缓存加载器的 Jinja2 与 django 模板 - 性能比较如何?

我很好奇——随着 django 1.2 中缓存模板加载器的引入,性能与最新的 Jinja2 相比如何?

有没有人尝试过运行测试?

谢谢。