kishore
kishore

Reputation: 413

How to solve the URL decoding problem in Django and nginx

My web app is deployed using nginx. I have view like below for the url /incoming/`.

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

When I hit my url /incoming/?incoming=hello&user=nkishore I am getting the response I need. but when I call this url using requests module with below code I am getting an error.

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

I have checked the nginx logs and the request I got was /incoming/?incoming=hiu0026user=nkishore so in my view request.GET["user"] is failing to get user.

I am not getting what I am missing here, is it a problem with nginx or any other way to call in requests.

Upvotes: 0

Views: 162

Answers (1)

C14L
C14L

Reputation: 12558

See Requests Docs for how to pass parameters, e.g.

>>> 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

Internally, Requests will likely escape the & ampersand with &. If you really want to do the URL manually, try as your URL string:

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

Upvotes: 1

Related Questions