在Flask中处理URL中的&符号

时间:2013-12-16 23:46:10

标签: python flask url-routing jinja2

我是使用Flask和Jinja2模板进行网页开发的新手。 模板中我的HTML表格的一行中有一列是:

<td><a> href="/plot?label={{stats[0]}}">{{stats[0]}} </a></td>

stats[0]是一个变量,它是一个字符串,可能包含'&amp;'例如“鸡蛋和垃圾邮件”。 现在在视图(views.py)中:

@app.route("/plot", methods = ["GET", "POST"])
@login_required
def on_plot():
    data = request.args
    label_name = data['label']

在这种情况下,我dataImmutableMultiDict([(' Spam', u''), ('label', u'Eggs ')]) 这是不正确的。相反,我想要ImmutableMultiDict([('label', u'Eggs & Spam ')])

那我该怎么办呢?我尝试过{{stats[0]|escape}},但它不起作用。

1 个答案:

答案 0 :(得分:4)

您希望使用url_for

从视图构建网址
<td><a> href="{{ url_for('on_plot', label=stats[0]) }}">{{stats[0]}} </a></td>

url_for()方法将为您构建一个查询字符串并适当地转义&符号。