在Jinja2中,如何访问与include合并的文件中指定的变量(即{% set X=Y %}
在给定两个Jinja2文件的情况下,我希望下面的代码能够正常工作:
A.jinja
Stuff
{% include 'B.jinja' -%}
B has {{ N }} references
B.jinja
{% set N = 12 %}
我预计当用Jinja2编译A.jinja时,会产生以下输出:
Stuff
B has 12 references
但是,它会产生:
Stuff
B has references
我非常感谢任何关于如何访问文件中的Jinja2变量的输入,比
我想用jinja2来编写我自己的静态页面生成器。我希望在特定块中以编程方式呈现某些内容。我试过这个:
import jinja2
a = "adam"
b = "bob"
template = jinja2.Template(u"{{ A }} {% block b %}{% endblock %}")
html = template.render({'A': a, 'B': b})
print(html)
但是返回以下输出:adam。如何在b块中呈现一些文本和/或变量(例如变量b)。
我在一个简单的web应用上运行tornado。目前,我正在尝试创建一个user模块来显示base.html上包含的navbar.html组件上的登录用户信息。
我创建了一个uimodules.py文件,添加了我的菜单类
import tornado.web
class Menu(tornado.web.UIModule):
def render(self):
return '<div>THE MODULE HAS ARRIVED</div>'
然后在我的app.py中导入了这个
from uimodules import Menu
在我
我试图从从CSV文件创建的python中呈现一个jinja2模板,但是jinja2对这个dict持不同态度,我不明白为什么。
这是模板:
{% for key, value in hostname.iteritems() %}
interface {{ key }}
description {{ value }}
{% endfor %}
这是python代码:
import csv
from pprint import pprint
import os
import jinja2
CSVDATA_FILENAME = 'port_descriptions.csv'
TEM
我想使用python和jinja2创建一个特定的文本文件结构。(不是HTML)。这些文件是静态的,由几个段组成,每个段由不同的jinja模板创建。
每一个按随机顺序排列的段都必须按顺序编号。
原则上:
Segment A (no 1)
---
My Segment B (no 2)
---
Another Segment C (no 3)
我使用python中的变量跟踪当前的数字。
当然,我可以把这个变量传递给每个模板,就像这样。
outfile=[] # array for output
# get some objects...
for i in range(1,5): # ex