I need to get the query string from this URL https://stackoverflow.com/questions/ask?next=1&value=3 and I don\'t want to use request.META. I have figured out that there
I prefer using
request.META['QUERY_STRING']
From docs:
https://docs.djangoproject.com/en/stable/ref/request-response/#django.http.HttpRequest.META
This does not include the ?
prefix.
You can make Query string using GET parameters like this
request.GET.urlencode()
This does not include the ?
prefix, and it may not return the keys in the same order as in the original request.
Third option:
>>> from urlparse import urlparse, parse_qs
>>> url = 'http://something.com?blah=1&x=2'
>>> urlparse(url).query
'blah=1&x=2'
>>> parse_qs(urlparse(url).query)
{'blah': ['1'], 'x': ['2']}
In Python 3+ this is available as:
from urllib.parse import parse_qs
Documentation for urllib.parse