0
0
DjangoHow-ToBeginner · 3 min read

How to Use request.GET in Django: Simple Guide

In Django, request.GET is a dictionary-like object that holds all the query parameters sent via the URL. You can access values by key using request.GET.get('key') to safely retrieve parameters without errors if the key is missing.
📐

Syntax

The request.GET object behaves like a dictionary containing all URL query parameters. Use request.GET.get('param') to get the value of a parameter named param. If the parameter is missing, it returns None or a default value if provided.

  • request.GET['param']: Access parameter directly, raises error if missing.
  • request.GET.get('param'): Access parameter safely, returns None if missing.
  • request.GET.get('param', 'default'): Returns 'default' if parameter is missing.
python
value = request.GET.get('param')
value_with_default = request.GET.get('param', 'default_value')
value_direct = request.GET['param']  # Use carefully
💻

Example

This example shows a Django view that reads a query parameter named name from the URL and returns a greeting message. If name is missing, it uses a default greeting.

python
from django.http import HttpResponse

def greet(request):
    name = request.GET.get('name', 'Guest')
    return HttpResponse(f"Hello, {name}!")
Output
If URL is /greet?name=Alice, output: Hello, Alice! If URL is /greet, output: Hello, Guest!
⚠️

Common Pitfalls

Common mistakes when using request.GET include:

  • Using request.GET['param'] without checking if the key exists, which raises a KeyError if missing.
  • Not handling multiple values for the same key, which requires request.GET.getlist('param').
  • Assuming values are always strings; you may need to convert types explicitly.
python
def wrong_way(request):
    # This will raise KeyError if 'age' is missing
    age = request.GET['age']


def right_way(request):
    # This safely gets 'age' or returns 'unknown'
    age = request.GET.get('age', 'unknown')
📊

Quick Reference

UsageDescription
request.GET.get('key')Get value for 'key' or None if missing
request.GET.get('key', 'default')Get value or return 'default' if missing
request.GET['key']Get value for 'key', raises error if missing
request.GET.getlist('key')Get list of all values for 'key' if repeated

Key Takeaways

Use request.GET.get('key') to safely access query parameters without errors.
Provide a default value in get() to handle missing parameters gracefully.
Avoid using request.GET['key'] unless you are sure the parameter exists.
Use request.GET.getlist('key') to handle multiple values for the same parameter.
Remember all values from request.GET are strings; convert types as needed.