如何解决Django和nginx中的URL解码问题

时间:2018-10-15 10:58:18

标签: django nginx python-requests

我的Web应用程序是使用nginx部署的。我的网址/ incoming /`如下所示。

def incoming_view(request):
    incoming = request.GET["incoming"]
    user = request.GET["user"]
    ...

当我点击自己的网址/incoming/?incoming=hello&user=nkishore时,我会得到所需的响应。但是当我使用带有以下代码的requests模块调用此网址时,出现错误。

r = requests.get('http://localhost/incoming/?incoming=%s&user=%s'%("hello", "nkishore"))
print r.json()

我已经检查了nginx日志,并且得到的请求是/incoming/?incoming=hiu0026user=nkishore,所以在我看来request.GET["user"]无法获得user

我没有得到我在这里缺少的内容,这是nginx或其他任何requests调用方式出现的问题。

1 个答案:

答案 0 :(得分:1)

有关如何传递参数的信息,请参见Requests Docs

>>> payload = {'key1': 'value1', 'key2': 'value2'}
>>> r = requests.get('https://httpbin.org/get', params=payload)
>>> print(r.url)
https://httpbin.org/get?key2=value2&key1=value1

在内部,请求可能会用&逃脱&和号。如果您真的想手动执行该URL,请尝试作为您的URL字符串:

'http://localhost/incoming/?incoming=%s&user=%s'