Retrieving parameters from a URL Retrieving parameters from a URL django django

Retrieving parameters from a URL


This is not specific to Django, but for Python in general. For a Django specific answer, see this one from @jball037

Python 2:

import urlparseurl = 'https://www.example.com/some_path?some_key=some_value'parsed = urlparse.urlparse(url)captured_value = urlparse.parse_qs(parsed.query)['some_key'][0]print captured_value

Python 3:

from urllib.parse import urlparsefrom urllib.parse import parse_qsurl = 'https://www.example.com/some_path?some_key=some_value'parsed_url = urlparse(url)captured_value = parse_qs(parsed_url.query)['some_key'][0]print(captured_value)

parse_qs returns a list. The [0] gets the first item of the list so the output of each script is some_value

Here's the 'parse_qs' documentation for Python 3


I'm shocked this solution isn't on here already. Use:

request.GET.get('variable_name')

This will "get" the variable from the "GET" dictionary, and return the 'variable_name' value if it exists, or a None object if it doesn't exist.


import urlparseurl = 'http://example.com/?q=abc&p=123'par = urlparse.parse_qs(urlparse.urlparse(url).query)print par['q'][0], par['p'][0]