Python,Flask和jinja模板 - 如何迭代创建服务器端的字典

Tam*_*mpa 3 python jinja2 flask

我正在使用烧瓶.

在页面加载时在服务器服务器上创建一个字典.

@app.route('/edit_creative', methods=["GET", "POST"])
@login_required
def edit_creative():
    if request.method == "POST": 
        pass

    query = """select * from mystable"""
    print query
    rows = execute_query(query,select=True)
    creative_handler={}
    for row in rows:
        j = row[2].strip("'")
        j = json.loads(j)
        creative_handler[row[1]]=j

    return render_template("edit_creatives.html",title = 'Edit Creative')
Run Code Online (Sandbox Code Playgroud)

在客户端,我想迭代哈希:

{% for crid, object in creative_handler.iteritems() %}

{{ crid }}<br>

{% endfor %}
Run Code Online (Sandbox Code Playgroud)

在页面上我收到此错误

UndefinedError: 'creative_handler' is undefined
Run Code Online (Sandbox Code Playgroud)

所以..如何使用jinja模板迭代哈希创建服务器端?

Mar*_*ers 6

您需要传递creative_handler给模板:

return render_template("edit_creatives.html", title='Edit Creative', creative_handler=creative_handler)
Run Code Online (Sandbox Code Playgroud)