This simple view reads a 'name' from the URL query and greets the user. If no name is given, it says 'Friend'.
Django
from django.http import HttpResponse
def greet_user(request):
# Check if user sent a name via GET
name = request.GET.get('name', 'Friend')
# Return a greeting messagereturn HttpResponse(f"Hello, {name}!")
OutputSuccess
Important Notes
The HttpRequest object is your main way to get info about what the user sent.
Always check request.method to know if data comes from GET or POST.
Use request.GET for URL query data and request.POST for form data.
Summary
The HttpRequest object holds all details about a user's web request.
You use it in your view functions to read data like form inputs, query strings, and headers.
It helps your app respond correctly based on what the user sends.
Practice
(1/5)
1. What does the HttpRequest object in Django primarily represent?
easy
A. The database connection settings
B. Information about the user's web request
C. The HTML template to render
D. The server's response to the user
Solution
Step 1: Understand the role of HttpRequest
The HttpRequest object contains all details sent by the user when they visit a web page or submit a form.
Step 2: Differentiate from other components
It is not about database settings, templates, or responses but about the incoming request data.
Final Answer:
Information about the user's web request -> Option B
Quick Check:
HttpRequest = user request info [OK]
Hint: HttpRequest always holds data sent by the user [OK]
Common Mistakes:
Confusing HttpRequest with HttpResponse
Thinking it holds database or template info
Assuming it represents server settings
2. Which of the following is the correct way to access GET parameters from a Django HttpRequest object named request?
easy
A. request.GET['param']
B. request.POST['param']
C. request.params['param']
D. request.data['param']
Solution
Step 1: Identify how to access GET data
In Django, GET parameters are accessed via the GET dictionary attribute of the HttpRequest object.
Step 2: Confirm the correct syntax
Using request.GET['param'] retrieves the value of 'param' from the URL query string.
Final Answer:
request.GET['param'] -> Option A
Quick Check:
GET params use request.GET [OK]
Hint: Use request.GET for URL query parameters [OK]
Common Mistakes:
Using request.POST for GET parameters
Using non-existent attributes like request.params
Confusing request.data with Django HttpRequest
3. Given the following Django view code, what will be printed if the URL is /search/?q=django?
B. Using request.POST.get instead of request.GET.get
C. No error, code is correct
D. Incorrect use of f-string in HttpResponse
Solution
Step 1: Check for necessary imports
The code uses HttpResponse but does not show an import statement for it, which is required.
Step 2: Verify usage of request.POST.get and f-string
Using request.POST.get is valid for POST data, and f-string usage is correct in Python 3.6+.
Final Answer:
Missing import of HttpResponse -> Option A
Quick Check:
HttpResponse must be imported [OK]
Hint: Always import HttpResponse before using it [OK]
Common Mistakes:
Assuming request.POST.get is wrong for POST data
Thinking f-string is invalid syntax
Ignoring missing imports causing runtime errors
5. You want to check if a user sent a custom header named X-Auth-Token in a Django view. Which is the correct way to access this header from the HttpRequest object named request?
hard
A. request.headers['X-Auth-Token']
B. request.POST['X-Auth-Token']
C. request.GET['X-Auth-Token']
D. request.META['HTTP_X_AUTH_TOKEN']
Solution
Step 1: Understand how Django stores HTTP headers
Django stores HTTP headers in the request.META dictionary, with header names uppercased, prefixed by 'HTTP_', and dashes replaced by underscores.
Step 2: Convert 'X-Auth-Token' to META key
The header X-Auth-Token becomes HTTP_X_AUTH_TOKEN in request.META.
Final Answer:
request.META['HTTP_X_AUTH_TOKEN'] -> Option D
Quick Check:
Custom headers use request.META with HTTP_ prefix [OK]
Hint: Custom headers in request.META with HTTP_ prefix [OK]
Common Mistakes:
Using request.headers (added in Django 2.2 but not always reliable)
Trying to get headers from GET or POST dictionaries
Not converting header name to uppercase with HTTP_ prefix
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.