Jump into concepts and practice - no test required
or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What is request parsing in Django?
Request parsing in Django means reading and understanding the data sent by the user in a web request, like form data or JSON, so the server can use it.
Click to reveal answer
beginner
How does Django handle response rendering?
Django creates a response by turning data into a format the browser understands, like HTML or JSON, and sends it back to the user.
Click to reveal answer
intermediate
How do you parse JSON data from a Django request?
Use json.loads(request.body.decode('utf-8')) to parse JSON data sent in the request body.
Click to reveal answer
beginner
What function is commonly used to render HTML templates in Django views?
The render() function combines a template with data and returns an HttpResponse with the final HTML to show in the browser.
Click to reveal answer
beginner
How can you return JSON data in a Django view?
Use Django's JsonResponse class to send JSON data back to the client easily and correctly set the content type.
Click to reveal answer
Which Django object contains the data sent by the client in a request?
AHttpRequest
BHttpResponse
CJsonResponse
DTemplate
✗ Incorrect
HttpRequest holds all the data sent by the client, including form data, headers, and body.
What does the render() function in Django do?
ASends a JSON response
BParses JSON data from a request
CCombines a template with data and returns an HTML response
DHandles URL routing
✗ Incorrect
render() takes a template and data, then returns an HttpResponse with HTML.
How do you send JSON data back to the client in Django?
AUse HttpResponse with content_type='text/html'
BUse JsonResponse with a Python dictionary
CUse render() with a JSON template
DUse HttpRequest.json()
✗ Incorrect
JsonResponse automatically converts a Python dictionary to JSON and sets the right content type.
Which method can you use to parse JSON data from a Django request body?
Ajson.loads(request.body.decode('utf-8'))
Brequest.GET
Crequest.POST
Drender()
✗ Incorrect
json.loads(request.body.decode('utf-8')) reads the raw request body and parses it as JSON.
What content type does JsonResponse set by default?
Atext/html
Bapplication/xml
Ctext/plain
Dapplication/json
✗ Incorrect
JsonResponse sets the content type to application/json to tell the browser it is JSON data.
Explain how Django parses incoming request data and how you can access JSON data sent by a client.
Think about how raw data is read and converted to Python objects.
You got /4 concepts.
Describe how Django renders a response to send back HTML or JSON to the client.
Consider the difference between HTML and JSON responses.
You got /4 concepts.
Practice
(1/5)
1. What is the main purpose of JsonResponse in Django?
easy
A. To send JSON data back to the client as an HTTP response
B. To parse JSON data from the client's request body
C. To convert Python objects into HTML templates
D. To handle file uploads in a Django view
Solution
Step 1: Understand JsonResponse role
JsonResponse is a Django class that formats Python data as JSON and sends it as an HTTP response.
Step 2: Differentiate from request parsing
Parsing JSON from requests is done with json.loads() or similar, not JsonResponse.
Final Answer:
To send JSON data back to the client as an HTTP response -> Option A
Quick Check:
JsonResponse sends JSON responses [OK]
Hint: JsonResponse sends data out, not reads it in [OK]
Common Mistakes:
Confusing JsonResponse with JSON parsing
Thinking JsonResponse parses request data
Mixing up response rendering with template rendering
2. Which of the following is the correct way to parse JSON data from a Django request object named request?
easy
A. data = request.json()
B. data = json.dumps(request.body)
C. data = JsonResponse(request.body)
D. data = json.loads(request.body)
Solution
Step 1: Identify JSON parsing method
To convert JSON string to Python object, use json.loads().
Step 2: Apply to request body
request.body contains raw bytes, so decode if needed, then parse with json.loads().
Final Answer:
data = json.loads(request.body) -> Option D
Quick Check:
json.loads parses JSON string [OK]
Hint: Use json.loads to read JSON from request body [OK]
Common Mistakes:
Using json.dumps instead of json.loads
Calling non-existent request.json() method
Using JsonResponse to parse input
3. Given this Django view code, what will be the HTTP response content?
from django.http import JsonResponse
import json
def my_view(request):
data = json.loads(request.body)
result = {"message": f"Hello, {data['name']}!"}
return JsonResponse(result)
And the client sends JSON body: {"name": "Alice"}
medium
A. Hello, Alice!
B. {"message": "Hello, {data['name']}!"}
C. {"message": "Hello, Alice!"}
D. SyntaxError
Solution
Step 1: Parse JSON from request body
The code uses json.loads(request.body) to get a Python dict with key 'name' and value 'Alice'.
Step 2: Format message and return JsonResponse
The message string becomes "Hello, Alice!" and is wrapped in a dict, then sent as JSON response.
Final Answer:
{"message": "Hello, Alice!"} -> Option C
Quick Check:
JsonResponse sends formatted JSON string [OK]
Hint: JsonResponse returns JSON string with keys and values [OK]
Common Mistakes:
Thinking JsonResponse returns plain text
Confusing string interpolation syntax
Expecting raw Python dict as response
4. What is wrong with this Django view code snippet for parsing JSON?
def my_view(request):
data = json.loads(request.POST)
return JsonResponse({"status": "ok"})
medium
A. request.POST is empty for GET requests only
B. request.POST is not a JSON string, so json.loads will fail
C. The function must return a string, not JsonResponse
D. JsonResponse cannot be used without importing
Solution
Step 1: Understand request.POST content
request.POST is a QueryDict, not a JSON string, so passing it to json.loads() causes an error.
Step 2: Correct JSON parsing method
To parse JSON, use json.loads(request.body) instead, since request.body contains raw JSON bytes.
Final Answer:
request.POST is not a JSON string, so json.loads will fail -> Option B
Quick Check:
json.loads needs JSON string, not QueryDict [OK]
Hint: Use request.body for JSON, not request.POST [OK]
Common Mistakes:
Passing request.POST to json.loads
Assuming JsonResponse needs string return
Ignoring HTTP method differences
5. You want to create a Django view that accepts JSON with a list of numbers under key values, sums them, and returns the sum as JSON. Which code correctly implements this?
hard
A. def sum_view(request):
data = json.loads(request.body)
total = sum(data['values'])
return JsonResponse({'sum': total})
B. def sum_view(request):
total = sum(request.POST.getlist('values'))
return JsonResponse({'sum': total})
C. def sum_view(request):
data = json.dumps(request.body)
total = sum(data['values'])
return JsonResponse({'sum': total})
D. def sum_view(request):
total = sum(request.GET['values'])
return JsonResponse({'sum': total})
Solution
Step 1: Parse JSON body correctly
Use json.loads(request.body) to get Python dict from JSON input.
Step 2: Sum the list and return JSON response
Extract the list under 'values', sum it, and return with JsonResponse.
Final Answer:
def sum_view(request):
data = json.loads(request.body)
total = sum(data['values'])
return JsonResponse({'sum': total}) -> Option A
Quick Check:
Parse JSON body, sum list, return JsonResponse [OK]
Hint: Parse JSON body, then sum list, then JsonResponse [OK]