This Django view counts how many times a user visits the page. It gets the current count from the session, adds one, saves it back, and shows the count.
Django
from django.http import HttpResponse
def visit_counter(request):
visits = request.session.get('visits', 0)
visits += 1
request.session['visits'] = visits
return HttpResponse(f"You have visited this page {visits} times.")
OutputSuccess
Important Notes
Session data is stored per user and lasts until the session expires or is cleared.
Always check if a session key exists before using it to avoid errors.
Sessions use cookies to identify users but do not store the actual data in cookies.
Summary
Sessions let you save and retrieve user-specific data across pages.
Use request.session['key'] = value to save data.
Use request.session.get('key', default) to safely get data.
Practice
(1/5)
1. What is the correct way to store a user's favorite color in Django session inside a view?
easy
A. request.session['favorite_color'] = 'blue'
B. request.session.set('favorite_color', 'blue')
C. session['favorite_color'] = 'blue'
D. request.set_session('favorite_color', 'blue')
Solution
Step 1: Understand Django session assignment
In Django, session data is stored by assigning a value to a key in request.session like a dictionary.
Step 2: Identify correct syntax for setting session data
The correct syntax is request.session['key'] = value. Methods like set or set_session do not exist.
Final Answer:
request.session['favorite_color'] = 'blue' -> Option A
Quick Check:
Set session data with dictionary syntax [OK]
Hint: Use dictionary style assignment to set session data [OK]
Common Mistakes:
Using non-existent methods like set() or set_session()
Trying to assign session data without request.session
Using session variable without request object
2. Which of the following is the correct syntax to retrieve a session value safely with a default in Django?
easy
A. request.session.get('user_id' : None)
B. request.session['user_id', None]
C. request.session.fetch('user_id', None)
D. request.session.get('user_id', None)
Solution
Step 1: Recall the method to get session data safely
Django sessions use the dictionary method get(key, default) to retrieve values safely without error if key is missing.
Step 2: Identify correct syntax
The correct syntax is request.session.get('user_id', None). Using brackets with comma or colon is invalid syntax, and fetch is not a valid method.
Final Answer:
request.session.get('user_id', None) -> Option D
Quick Check:
Use get() with key and default [OK]
Hint: Use get() method with key and default to avoid errors [OK]
Common Mistakes:
Using brackets with comma or colon inside session access
Using non-existent fetch() method
Accessing session key directly without default causing KeyError
3. Given the following Django view code snippet, what will be the output if the session has no 'visits' key initially?
The code uses request.session.get('visits', 0) which returns 0 if 'visits' key is missing.
Step 2: Follow the increment and assignment
It adds 1 to visits (0 + 1 = 1), then stores it back in session and returns the string with visits value.
Final Answer:
Visit count: 1 -> Option C
Quick Check:
Default 0 + 1 increment = 1 [OK]
Hint: Default value in get() prevents KeyError, then increment [OK]
Common Mistakes:
Assuming visits starts at None or causes error
Forgetting to add 1 before storing
Expecting KeyError when key is missing
4. Identify the error in this Django view code that tries to get a session value:
def view(request):
user = request.session['user', 'guest']
return HttpResponse(user)
medium
A. TypeError because session is not subscriptable
B. KeyError if 'user' key missing
C. Returns 'guest' string correctly
D. SyntaxError due to incorrect session key access
Solution
Step 1: Analyze session key access syntax
The code uses request.session['user', 'guest'] which passes a tuple ('user', 'guest') as the key.
Step 2: Identify correct way to provide default
This raises KeyError if the tuple key is missing. To get 'user' with default 'guest', use request.session.get('user', 'guest').
Final Answer:
KeyError if 'user' key missing -> Option B
Quick Check:
Tuple in brackets causes KeyError [OK]
Hint: Use get() for default, not tuple keys in brackets [OK]
Common Mistakes:
Using tuple inside brackets for session key
Expecting bracket syntax to accept default value
Confusing dictionary get() method with bracket access
5. You want to track a user's last visited page URL in session and display it on the next page visit. Which code snippet correctly sets and gets this session data in Django?
hard
A. last = request.session.get('last_page', 'None'); request.session['last_page'] = request.path
B. request.session['last_page'] = request.path; last = request.session.get('last_page', 'None')
C. request.session.set('last_page', request.path); last = request.session['last_page']
D. last = request.session['last_page']; request.session['last_page'] = request.path
Solution
Step 1: Understand the order of getting and setting session data
To show the last visited page, first get the stored value, then update it with the current page path.
Step 2: Identify correct code order and methods
last = request.session.get('last_page', 'None'); request.session['last_page'] = request.path first retrieves last_page with a default, then updates it with request.path. Other options set before getting or use invalid methods.
Final Answer:
last = request.session.get('last_page', 'None'); request.session['last_page'] = request.path -> Option A
Quick Check:
Get old value before updating session [OK]
Hint: Get session value before updating it to show previous data [OK]
Common Mistakes:
Setting session before getting old value loses previous data
Using non-existent set() method
Accessing session key directly without default causing error
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.