我是使用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']
在这种情况下,我data
为ImmutableMultiDict([(' Spam', u''), ('label', u'Eggs ')])
这是不正确的。相反,我想要ImmutableMultiDict([('label', u'Eggs & Spam ')])
那我该怎么办呢?我尝试过{{stats[0]|escape}}
,但它不起作用。
答案 0 :(得分:4)
您希望使用url_for
:
<td><a> href="{{ url_for('on_plot', label=stats[0]) }}">{{stats[0]}} </a></td>
url_for()
方法将为您构建一个查询字符串并适当地转义&符号。