cache.get('count', 0) returns 0 if 'count' is not in cache.
Step 2: Increment and set cache
count is incremented to 1, then saved back to cache and printed.
Final Answer:
1 -> Option A
Quick Check:
Empty cache default 0 + 1 = 1 [OK]
Hint: cache.get with default returns default if key missing [OK]
Common Mistakes:
Assuming cache.get returns None if missing
Expecting printed value to be 0 without increment
Thinking code raises error on missing key
4. This Django code tries to cache a complex object but causes an error:
from django.core.cache import cache
class MyObject:
def __init__(self, value):
self.value = value
obj = MyObject(10)
cache.set('obj', obj, timeout=300)
What is the likely cause of the error?
medium
A. Timeout value must be a string, not integer
B. cache.set requires a string value only
C. The object is not serializable for caching
D. MyObject class must inherit from Django model
Solution
Step 1: Understand cache storage requirements
Django cache backends usually require cached data to be serializable (e.g., picklable).
Step 2: Check object serializability
Custom class instances like MyObject may not be serializable by default, causing errors.
Final Answer:
The object is not serializable for caching -> Option C
Quick Check:
Non-serializable objects cause cache errors [OK]
Hint: Cache only serializable data like strings or dicts [OK]
Common Mistakes:
Thinking cache only accepts strings
Believing timeout must be string
Assuming class must be Django model to cache
5. You want to improve your Django app's homepage speed by caching the rendered HTML for 5 minutes. Which approach best achieves this while ensuring users see updated content after 5 minutes?
hard
A. Use Django's cache_page decorator with timeout=300 on the homepage view
B. Manually save HTML to a file and serve it without cache expiration
C. Cache only database queries but not the rendered HTML
D. Disable caching to always show fresh content
Solution
Step 1: Identify caching method for full page
Django's cache_page decorator caches the entire view output for a set time.
Step 2: Confirm timeout and freshness
Setting timeout=300 caches for 5 minutes, then refreshes automatically.
Step 3: Evaluate other options
Manual file caching lacks expiration; caching only queries misses full page speed; disabling cache loses performance.
Final Answer:
Use Django's cache_page decorator with timeout=300 on the homepage view -> Option A
Quick Check:
cache_page with timeout = best for timed full page cache [OK]
Hint: Use cache_page decorator with timeout for full page caching [OK]