Questions tagged «jinja2»

Jinja2是用于Python的快速模板引擎。它具有完整的Unicode支持,自动转义,继承,宏和许多其他功能。

3
获取Jinja2模板中列表的长度
如何获得jinja2模板中列表中的元素数? 例如,在Python中: print(template.render(products=[???])) 和在jinja2 <span>You have {{what goes here?}} products</span>
315 python  jinja2 


6
在Jinja2中,如何测试变量是否未定义?
从Django转换后,我习惯于执行以下操作: {% if not var1 %} {% endif %} 如果我没有将var1放入上下文中,它就可以工作。Jinja2给了我一个未定义的错误。有没有简单的说法{% if var1 == None %}或类似的说法?
190 jinja2 

2
有条件的Jinja2速记
说我有这个: {% if files %} Update {% else %} Continue {% endif %} 比方说,在PHP中,我可以写一个简写的条件语句,例如: <?php echo $foo ? 'yes' : 'no'; ?> 有没有一种方法可以将其转换为在jinja2模板中工作: 'yes' if foo else 'no'
190 python  jinja2 

8
如何在Jinja2中格式化日期?
使用Jinja2,如何格式化日期字段?我知道在Python中我可以简单地做到这一点: print(car.date_of_manufacture.strftime('%Y-%m-%d')) 但是,如何在Jinja2中格式化日期?
183 python  jinja2 

4
如何在Jinja Python模板中输出逗号分隔列表?
如果我有一个userssay 列表["Sam", "Bob", "Joe"],我想做一些我可以在jinja模板文件中输出的内容: {% for user in userlist %} <a href="/profile/{{ user }}/">{{ user }}</a> {% if !loop.last %} , {% endif %} {% endfor %} 我想使输出模板为: Sam, Bob, Joe 我尝试了上面的代码来检查它是否在循环的最后一次迭代中,如果没有,则不要插入逗号,但是它不起作用。我该怎么做呢?
179 python  jinja2 

3
如何在python jinja模板中输出loop.counter?
我希望能够将当前循环迭代输出到我的模板。 根据文档:http : //wsgiarea.pocoo.org/jinja/docs/loops.html,我正在尝试使用一个loop.counter变量。 我有以下几点: <ul> {% for user in userlist %} <li> {{ user }} {{loop.counter}} </li> {% if loop.counter == 1 %} This is the First user {% endif %} {% endfor %} </ul> 虽然没有任何输出到我的模板。正确的语法是什么?
167 python  jinja2 

5
使用Flask / Jinja2将HTML传递到模板
我正在为Flask和SQLAlchemy构建一个管理员,我想使用来将不同输入的HTML传递给我的视图render_template。模板框架似乎会自动转义html,因此所有<“'>都将转换为html实体。如何禁用它以使HTML正确呈现?
163 python  jinja2  flask 

9
Jinja2模板变量,如果无对象设置默认值
如果object为None,那么如何在jijna2中将变量默认设置为“”,而不是这样做呢? {% if p %} {{ p.User['first_name']}} {% else %} NONE {%endif %} 因此,如果对象p为None,我想将p的值(first_name和last_name)默认为“”。基本上 nvl(p.User[first_name'], "") 接收错误: Error: jinja2.exceptions.UndefinedError UndefinedError: 'None' has no attribute 'User'
145 jinja2 

12
从jinja2调用python函数
我正在使用jinja2,并且想使用类似于调用宏的语法来调用python函数作为辅助函数。jinja2似乎旨在阻止我进行函数调用,并坚持要通过将函数复制到模板中作为宏来重复我自己。 有没有简单的方法可以做到这一点?而且,有没有什么方法可以导入整套python函数并使它们从jinja2中进行访问,而无需经历大量的rigamarole(例如编写扩展名)?
144 python  jinja2 

9
如何在模板中将数据从Flask传递到JavaScript?
我的应用程序调用返回字典的API。我想将信息从此字典传递到视图中的JavaScript。具体来说,我在JS中使用Google Maps API,因此我希望向其传递一个包含长/短信息的元组列表。我知道render_template会将这些变量传递给视图,以便可以在HTML中使用它们,但是如何将它们传递给模板中的JavaScript? from flask import Flask from flask import render_template app = Flask(__name__) import foo_api api = foo_api.API('API KEY') @app.route('/') def get_data(): events = api.call(get_event, arg0, arg1) geocode = event['latitude'], event['longitude'] return render_template('get_data.html', geocode=geocode)

2
将整数转换为字符串Jinja
我有一个整数 {% set curYear = 2013 %} 在{% if %}声明中,我必须将其与一些字符串进行比较。我不能curYear在开始时设置为字符串,因为我必须在循环中将其递减。 如何转换?
122 python  jinja2  nunjucks 

10
模板文件更改时重新加载Flask应用
默认情况下,使用内置服务器(Flask.run)运行Flask应用程序时,它将监视其Python文件并在代码更改时自动重新加载该应用程序: * Detected change in '/home/xion/hello-world/app.py', reloading * Restarting with reloader 不幸的是,这似乎仅适用于* .py文件,而且我似乎没有找到任何将此功能扩展到其他文件的方法。最值得注意的是,当模板更改时,让Flask重新启动应用程序将非常有用。我已经迷失了多少次我不喜欢模板中的标记,却因为看不到任何更改而感到困惑,只是发现该应用程序仍在使用旧版本的Jinja模板。 因此,有没有办法在模板目录中包含Flask监视文件,还是需要深入研究框架的源代码? 编辑:我正在使用Ubuntu 10.10。尚未在任何其他平台上尝试过。 经过进一步的查询,我发现模板中的更改确实是实时更新的,而无需重新加载应用程序本身。但是,这似乎仅适用于传递给的模板flask.render_template。 但是碰巧的是,在我的应用程序中,我有很多在Jinja模板中使用的可重用的,参数化的组件。它们实现为{% macro %}s,驻留在专用的“模块”中,并{% import %}编入实际页面。很好,很干...除了那些导入的模板显然从未检查过是否修改,因为它们根本没有通过render_template。 (奇怪的是,对于通过调用的模板,这种情况不会发生{% extends %}。至于{% include %},由于不真正使用它们,我不知道。) 因此,总结起来,这种现象的根源似乎在Jinja和Flask或Werkzeug之间。我想对于其中的任何一个项目,都可能需要进行bug跟踪:)同时,我已经接受了jd。的答案,因为这是我实际使用的解决方案-而且它的工作原理很像魅力。
95 python  flask  jinja2 

2
使用url_for链接到Flask静态文件
如何url_for在Flask中使用引用文件夹中的文件?例如,我的static文件夹中有一些静态文件,其中一些可能位于子文件夹中static/bootstrap。 当我尝试从提供文件时static/bootstrap,出现错误。 <link rel=stylesheet type=text/css href="{{ url_for('static/bootstrap', filename='bootstrap.min.css') }}"> 我可以使用此文件来引用不在子文件夹中的文件。 <link rel=stylesheet type=text/css href="{{ url_for('static', filename='bootstrap.min.css') }}"> 引用静态文件的正确方法是什么url_for?如何使用url_for任何级别的静态文件生成URL?
91 python  flask  jinja2 


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.