【问题标题】:Handle ampersand in a URL in Flask在 Flask 中处理 URL 中的 & 符号
【发布时间】:2014-01-04 13:46:06
【问题描述】:

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

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

stats[0] 是一个变量,它是一个字符串,可能包含一个“&”,例如“鸡蛋和垃圾邮件”。 现在在视图中(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 &amp; Spam ')])

那么我该如何处理这种情况呢?我尝试过{{stats[0]|escape}},但它不起作用。

【问题讨论】:

    标签: python flask url-routing jinja2


    【解决方案1】:

    您想从视图构建 URL,使用 url_for:

    <td><a> href="{{ url_for('on_plot', label=stats[0]) }}">{{stats[0]}} </a></td>
    

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

    【讨论】:

    • 对不起,我删除了我之前的评论,因为它不适用。即使我碰巧使用了 Flask,也没有生成 JS 和 HTML(只有 web 服务),所以我在下面的问题中找到了我需要的东西,这与 Flask 和 JS 中的 URL 编码无关:@987654322 @
    猜你喜欢
    • 2016-11-18
    • 2012-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-16
    • 1970-01-01
    • 2013-06-10
    相关资源
    最近更新 更多