相关疑难解决方法(0)

有没有办法将变量传递给Jinja2父母?

我正在尝试将一些变量从子页面传递给模板.这是我的python代码:

    if self.request.url.find("&try") == 1:
        isTrying = False
    else:
        isTrying = True

    page_values = {
        "trying": isTrying
    }

    page = jinja_environment.get_template("p/index.html")
    self.response.out.write(page.render(page_values))
Run Code Online (Sandbox Code Playgroud)

模板:

<html>
  <head>
    <link type="text/css" rel="stylesheet" href="/css/template.css"></link>
    <title>{{ title }} | SST QA</title>

    <script src="/js/jquery.min.js"></script>

  {% block head %}{% endblock head %}
  </head>
  <body>
    {% if not trying %}
    <script type="text/javascript">
    // Redirects user to maintainence page
    window.location.href = "construct"
    </script>
    {% endif %}

    {% block content %}{% endblock content %}
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

和孩子:

{% extends "/templates/template.html" %} …
Run Code Online (Sandbox Code Playgroud)

html python google-app-engine jinja2

11
推荐指数
4
解决办法
1万
查看次数

Jinja表达式中的参考模板变量

我有一个像这样定义的路线:

@app.route('/magic/<filename>')
def moremagic(filename):
    pass
Run Code Online (Sandbox Code Playgroud)

现在在模板中我想用url_for()这样的方式调用该路由:

<h1>you uploaded {{ name }}<h1>
<a href="{{ url_for('/magic/<filename>') }}">Click to see magic happen</a>
Run Code Online (Sandbox Code Playgroud)

我试过了:

<a href="{{ url_for('/magic', filename={{ name }}) }}">Click to see magic happen</a>
Run Code Online (Sandbox Code Playgroud)

那扔了一个 jinja2.TemplateSyntaxError: expected token ':' got }

任何人都可以建议如何{{ name }}将模板中出现的内容输入到url_for()所以当我点击时我调用正确的app.route

python jinja2 flask

9
推荐指数
1
解决办法
1万
查看次数

我可以在 Flask 模板中嵌套变量吗?

大家好,我在 Flask 中遇到了一个问题。mysql中有一个表名为category,我查询了所有的表,然后传给a.html,像这样:

return render_template('admin_index.html', username=session.get('username'), categories=categories)
Run Code Online (Sandbox Code Playgroud)

在 admin_index.html 中,我想列出所有这些,这是我的代码:

var _menus = {
    "menus": [
        {
            "menuid": "1",
            "icon": "icon-sys",
            "menuname": "category",
            "menus": [
                {% for category in categories %}
                    {
                        "menuid": "{{ category.id }}",
                        "menuname":"{{ category.name }}",
                        "icon": "icon-users",
                        "url": "{{url_for('admin.category', id={{category.id}} _external=True) }}"
                    },
                {% endfor %}
            ]
        }
    ]
};
Run Code Online (Sandbox Code Playgroud)

但是当我运行这个时,我得到了一个错误:

jinja2.exceptions.TemplateSyntaxError:预期的标记“:”,得到“}”

我尝试删除{{ category.id }},结果还可以,我怀疑不允许在 Flask 模板中嵌套变量,如下所示:

{{ a is {{ b }} }}
Run Code Online (Sandbox Code Playgroud)

有什么办法可以嵌套吗?

flask

2
推荐指数
1
解决办法
1581
查看次数

标签 统计

flask ×2

jinja2 ×2

python ×2

google-app-engine ×1

html ×1