我想做一些事情: variablesp来自test.py这是一个列表['a','b','c','d'] {% for i in p %} {{variable++}} {{variable}} 结果输出是:1 2 3 4
Jinja2macros如何处理额外的参数和kwargs? 文件不是完全清楚的。 例如,这显然是错误的: {% macro example_1(one, two, **kwargs) %} do macro stuff {% endmacro %} 这导致了 jinja2.exceptions.TemplateSyntaxError TemplateSyntaxError: expected token 'name', got '**' 该文件说: kwargs 像可变参数,但关键字参数。 所有未使用的关键字参数都存储在这个特殊variables中。 不幸的是,任何额外的关键字参数组合是一个错误, {% macro example_2(one, two) %} do macro stuff {% endmacro %} {{ example_2(one, two, test='test') }} TypeError: macro 'example_2' takes no keyword keyword argument 'test' 我没有任何例子,也没有在Jinja2的源代码atm中大肆渲染。 目前我的文档还不清楚。 […]
我有以下Jinja模板: {% set mybool = False %} {% for thing in things %} <div class='indent1'> <ul> {% if current_user %} {% if current_user.username == thing['created_by']['username'] %} {% set mybool = True %} <li>mybool: {{ mybool }}</li> <!– prints True –> <li><a href='#'>Edit</a></li> {% endif %} {% endif %} <li>Flag</li> </ul> </div> <hr /> {% endfor […]
默认情况下,当使用内置服务器( Flask.run )运行Flask应用程序时,它会监视其Python文件,并在代码更改时自动重新载入应用程序: * Detected change in '/home/xion/hello-world/app.py', reloading * Restarting with reloader 不幸的是,这似乎只适用于* .py文件,而且我似乎没有find任何方法将此function扩展到其他文件。 最值得注意的是,当模板更改时,Flask重启应用将非常有用。 我已经失去了多less次在模板中弄乱了标记,并且因为没有看到任何改变而感到困惑,只是发现应用程序仍然使用旧版本的Jinja模板。 那么,有没有一种方法可以在模板目录中使用Flask监视器文件,还是需要跳入框架的源代码? 编辑 :我使用Ubuntu 10.10。 还没有尝试过,在任何其他平台真的。 经过进一步的调查,我发现模板的变化实际上是实时更新的,无需重新加载应用程序本身。 但是,这似乎只适用于传递给flask.render_template模板。 但是恰巧在我的应用程序中,我有很多可重用的参数化组件,我在Jinja模板中使用。 它们被实现为{% macro %} ,驻留在专用的“模块”中,并被{% import %}到实际的页面中。 所有漂亮和干燥…除了那些导入的模板显然从来没有检查修改,因为他们根本不通过render_template 。 (奇怪的是,对于通过{% extends %}调用的模板,这不会发生。对于{% include %} ,我不知道,因为我没有真正使用它们。 所以这个现象的根源似乎在于Jinja和Flask或者Werkzeug之间。 我想这可能需要为这些项目之一的bug追踪器:)同时,我接受了jd。 因为这是我实际使用的解决scheme – 它的作用就像一个魅力。
我的一个瓶子项目使用Jinja2。 PyCharm不会自动识别它,并将这些行显示为错误。 有没有办法让Jinja2工作?
我正在尝试这样做: {% for movie in movie_list | sort(movie.rating) %} 但是这是不正确的…文件是模糊的…你怎么在Jinja2做这个?
正如我理解Flask中的gvariables,它应该为我提供一个全局的地方来存储数据,例如login后保存当前用户。 它是否正确? 我希望我的导航在login网站时显示我的用户名。 我的意见包含 from Flask import g #among other things 在login期间,我分配 user = User.query.filter_by(username = form.username.data).first() if validate(user): session['logged_in'] = True g.user = user 我似乎无法访问g.user。 相反,当我的base.html模板具有以下… <ul class="nav"> {% if session['logged_in'] %} <li class="inactive">logged in as {{ g.user.username }}</li> {% endif %} </ul> 我得到的错误: jinja2.exceptions.UndefinedError UndefinedError: 'flask.ctx._RequestGlobals object' has no attribute 'user' login,否则工作正常。 我错过了什么?
我有一个jinja2模板(.html文件),我想渲染(用我的py文件中的值replace标记)。 但是,我不想将渲染结果发送到浏览器,而是将其写入一个新的.html文件。 我会想象解决scheme也将类似的Django模板。 我怎样才能做到这一点?
Jinja2和Mako显然都很快。 这些如何比较(function较less,但可能足够好,我在做什么)string.Template?
在一个模板中,我怎么得到我目前的网页? 我宁愿不传递像page的variables,特别是当我知道一些request.xxx可以提供给我的信息。 <li {% if page=="home" %}class="active"{% endif %}> <a href="/">Home</a> </li> <li {% if page=="about" %}class="active"{% endif %}> <a href="/about">About</a> </li>