[Django]-How to get GET request values in Django Views?

70πŸ‘

βœ…

{{request.GET.param1}} in the template. (Using RequestContext)

request.GET.get('param1', None) in the view.

πŸ‘€JamesO

25πŸ‘

{{ request.resolver_match.kwargs.argument }}

for function arguments passed to the view as:

def myview(request, argument):

Tested on Django 1.9.

8πŸ‘

Suppose you have GET Method like this –

http://djangopmt.localhost/tasks/?project=1&status=3&priority=High&search=StudyGyaan.com

We can get the URL Parameters like this in Django Template –

{{request.GET.project}}
{{request.GET.status}}
{{request.GET.priority}}
{{request.GET.search}}

And if you want to get URL parameter in Django Views then you can get it like this –

request.GET.get('project', None)
request.GET.get('status', None)
request.GET.get('priority', None)
request.GET.get('search', None)
πŸ‘€Cipher

0πŸ‘

For example, if you access the url below:

https://example.com/?fruits=apple&meat=beef

Then, you can get the parameters in views.py as shown below. *My answer explains it more:

# "views.py"

from django.shortcuts import render

def index(request):

    print(request.GET['fruits']) # apple
    print(request.GET.get('meat')) # beef
    print(request.GET.get('fish')) # None
    print(request.GET.get('fish', "Doesn't exist")) # Doesn't exist
    print(request.GET.getlist('fruits')) # ['apple']
    print(request.GET.getlist('fish')) # []
    print(request.GET.getlist('fish', "Doesn't exist")) # Doesn't exist
    print(request.GET._getlist('meat')) # ['beef']
    print(request.GET._getlist('fish')) # []
    print(request.GET._getlist('fish', "Doesn't exist")) # Doesn't exist
    print(list(request.GET.keys())) # ['fruits', 'meat']
    print(list(request.GET.values())) # ['apple', 'beef']
    print(list(request.GET.items())) # [('fruits', 'apple'), ('meat', 'beef')]
    print(list(request.GET.lists())) # [('fruits', ['apple']), ('meat', ['beef'])]
    print(request.GET.dict()) # {'fruits': 'apple', 'meat': 'beef'}
    print(dict(request.GET)) # {'fruits': ['apple'], 'meat': ['beef']}
    print(request.META['QUERY_STRING']) # fruits=apple&meat=beef
    print(request.META.get('QUERY_STRING')) # fruits=apple&meat=beef

    return render(request, 'index.html')

Leave a comment