草庐IT

python - 当键是变量时如何从 jinja 中的字典中获取值?

我正在尝试从jinja2中的python字典中检索条目,但问题是我不知道我想提前访问哪个key-key存储在一个名为s.course的变量中。所以我的问题是我需要双重替换这个变量。我不想使用for循环,因为这将比必要的更多地通过字典。这是我创建的一个解决方法,但s.course值可能会发生变化,因此显然对它们进行硬编码是不好的。我希望它基本上像这样工作:{%ifs.course=="p11"%}{{course_codes.p11}}{%elifs.course=="m12a"%}{{course_codes.m12a}}{%elifs.course=="m12b"%}{{course

python - 如何使用 jinja 模板引擎将数组转换为字符串?

我有一个名为“标签”的数组元素,我想将标签数组转换为由空格分隔的字符串。但是你如何在Jinja中做到这一点?我试过:{{tags|join}} 最佳答案 其实你已经差不多了,要加入空间,就这样说吧:{{tags|join('')}}参见jinjadocs了解更多详情 关于python-如何使用jinja模板引擎将数组转换为字符串?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1

python - Jinja2:格式化+加入列表的项目

play_hosts是一场比赛的所有机器的列表。我想使用这些并使用format()之类的东西重写它们,例如rabbitmq@%s然后用join()。所以:{{play_hosts|format(???)|join(',')}}格式的所有示例都使用管道,其中输入是格式字符串而不是列表。有没有办法使用这些(或其他东西)来完成我想要的?输出应该类似于:['rabbitmq@server1','rabbitmq@server2',rabbitmq@server3',...]jinja2文档描述的格式如下:format(value,*args,**kwargs)在对象上应用python字符串格式

python - 如何使用 jinja2 将模板中的名称复数化?

如果我有一个名为num_countries的模板变量,要用Django进行复数化,我可以这样写:countr{{num_countries|pluralize:"y,ies"}}有没有办法用jinja2做这样的事情?(我知道这在jinja2中不起作用)什么是jinja2替代品?感谢任何提示! 最佳答案 GuyAdini的回复绝对是可行的方法,尽管我认为(或者我误用了它)它与Django中的pluralize过滤器不完全相同。因此这是我的实现(使用装饰器注册)@app.template_filter('pluralize')defpl

python - Jinja 2 安全关键字

我在理解像{{something.render()|这样的表达式时有点问题安全}}确实。据我所知,如果没有safe关键字,它会输出整个html文档,而不仅仅是真实内容。我想知道的是,它实际上是做什么的,它是如何运作的。 最佳答案 safe过滤器明确地将字符串标记为“安全”,即,如果启用了自动转义,则不应自动转义。关于此过滤器的文档是here.参见manualescaping部分查看哪些字符符合转义条件。 关于python-Jinja2安全关键字,我们在StackOverflow上找到一个

python - 在 JINJA2 中连接列表

如何在jinja2中连接两个列表变量?例如GRP1=[1,2,3]GRP2=[4,5,6]{#Thisworksfine:#}{%forMinGRP1%}Valueis{{M}}{%endfor%}{#Butthisdoesnot:#}{%forMinGRP1+GRP2%}Valueis{{M}}{%endfor%}因此,我尝试使用+连接两个列表(就像在Python中那样),但事实证明它们不是列表,而是pythonxrange对象:jijna2error:unsupportedoperandtype(s)for+:'xrange'and'xrange'有没有办法让我在同一个for循环中

python - 如何在 Python 程序中使用 Jinja2 模板?

我有一个python脚本,我想将其作为每日cron作业执行以向所有用户发送电子邮件。目前我已经在脚本中对html进行了硬编码,它看起来很脏。我读过thedocs,但我还没有想出如何在我的脚本中呈现模板。有什么方法可以让我拥有单独的带有占位符的html文件,我可以使用python填充它,然后将其作为电子邮件正文发送?我想要这样的东西:mydict={}template='/templates/email.j2'fillTemplate(mydict)html=getHtml(filledTemplate) 最佳答案 我想在Flask框

python - 有没有办法将变量传递给 Jinja2 parent ?

我正在尝试将一些变量从子页面传递到模板。这是我的Python代码:ifself.request.url.find("&try")==1:isTrying=Falseelse:isTrying=Truepage_values={"trying":isTrying}page=jinja_environment.get_template("p/index.html")self.response.out.write(page.render(page_values))模板:{{title}}|SSTQA{%blockhead%}{%endblockhead%}{%ifnottrying%}//R

python - 如何在 Jinja2 模板中获取当前模板的文件名?

假设我使用returnrender_template('index.html',users=users)。是否可以在模板中获取文件名而不在View中显式发送它? 最佳答案 虽然未记录,{{self._TemplateReference__context.name}}将提供模板名称。您可以在self._TemplateReference__context之后使用许多有趣的属性。例如,您可以将其添加到最顶层的基本模板中:这样查看页面源将帮助您快速找到相关的模板文件。如果您不想公开此类信息,请将其作为测试环境的条件。

html - 如何在 Jinja2 中用换行符替换字符串

这个问题在这里已经有了答案:PassingHTMLtotemplateusingFlask/Jinja2(7个答案)关闭5年前。我在jinja2中有这样的数据'item1|item2|item3'我想把它变成渲染的换行符。但是,当我用br/标签替换它时,我得到了页面上呈现的br标签。所以{{'item1|item2|item3'|replace("|","")}}呈现为item1item2item3当我想要的时候item1item2item3在我的页面上。我觉得我在这里错过了一些明显的技巧......