【问题标题】:How to avoid + signs getting replaced with spaces in GET parameters (Django)?如何避免 + 符号被 GET 参数(Django)中的空格替换?
【发布时间】:2020-02-18 22:12:39
【问题描述】:

我发现自己需要在 GET 参数中传递电子邮件地址,但我注意到 + 符号被空格替换,因此像 example.com?param=myemail+alias@example.com 这样的 URL 在通过像 request.GET.get("param", None) 这样的东西捕获时会产生 @987654323 @。

现在我选择了带有 + 号的 replace()ing 空格这种可以说是粗略和冒险的方式,但我想知道:有没有更好的方法在 GET 参数中传递电子邮件地址(适用于 Django 3 +)?

【问题讨论】:

  • 由于+是空白的URL编码,所以需要对+(%2B)进行URL编码

标签: python django string url get


【解决方案1】:

您需要对它们进行 url 编码。

import urllib.parse
urllib.parse.quote_plus({'email': 'myemail+alias@example.com'})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-30
    • 1970-01-01
    • 2013-09-30
    • 2020-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多