Python、Flask和jinja模板-如何遍历字典创建的服务器sid

2024-03-28 13:21:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我在用烧瓶。

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

@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')

在客户端,我想遍历散列:

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

{{ crid }}<br>

{% endfor %}

在页面上我得到这个错误

UndefinedError: 'creative_handler' is undefined

那么..如何使用jinja模板在哈希创建服务器端进行迭代?


Tags: in服务器for字典烧瓶页面querypost
3条回答

您需要将creative_handler传递给模板:

return render_template("edit_creatives.html", title='Edit Creative', creative_handler=creative_handler)

试试看

return render_template("edit_creatives.html",title = 'Edit Creative', creative_handler = creative_handler)

如果creative_处理程序仍然包含您的数据。

您必须将对象实际传递给模板,以便可以看到它并为它指定一个名称,然后在模板中使用该名称。另外,请注意,代码不是在客户端执行的,而是在应用程序内部生成的,然后发送到客户端。他们只看到循环产生的HTML

你需要在模板中输入你想要使用的变量。

>>> from flask import render_template
>>> help(render_template)
render_template(template_name, **context)
    Renders a template from the template folder with the given
    context.

    :param template_name: the name of the template to be rendered
    :param context: the variables that should be available in the
                    context of the template.

soreturn render_template("edit_creatives.html",title = 'Edit Creative', creative_handler = creative_handler)

相关问题 更多 >