0
0
Djangoframework~20 mins

Function-based vs class-based decision in Django - Practice Questions

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Django Views Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
component_behavior
intermediate
2:00remaining
Output of a function-based view with a redirect
What will be the HTTP status code returned by this Django function-based view when accessed?
Django
from django.http import HttpResponseRedirect

def my_view(request):
    return HttpResponseRedirect('/home/')
A302 Found
B404 Not Found
C200 OK
D500 Internal Server Error
Attempts:
2 left
💡 Hint
Think about what HttpResponseRedirect does in Django.
📝 Syntax
intermediate
2:00remaining
Identify the syntax error in this class-based view
Which option correctly identifies the syntax error in this Django class-based view?
Django
from django.views import View
from django.http import HttpResponse

class MyView(View):
    def get(self, request):
        return HttpResponse('Hello')
    def post(self, request):
        return HttpResponse('Posted')
    def put(self, request):
        return HttpResponse('Put')
    def delete(self, request):
        return HttpResponse('Deleted')
    def patch(self, request):
        return HttpResponse('Patched')
    def options(self, request):
        return HttpResponse('Options')
    def trace(self, request):
        return HttpResponse('Trace')
    def head(self, request):
        return HttpResponse('Head')
    def connect(self, request):
        return HttpResponse('Connect')
    def get(self, request):
        return HttpResponse('Duplicate get')
ADuplicate method definition for 'get' in the class
BMissing colon after class declaration
CHttpResponse import is missing
DIndentation error in method definitions
Attempts:
2 left
💡 Hint
Look for repeated method names inside the class.
state_output
advanced
2:00remaining
State behavior difference between function-based and class-based views
Given these two views, what is the main difference in how they handle state between requests?
Django
from django.views import View
from django.http import HttpResponse

count = 0

def function_view(request):
    global count
    count += 1
    return HttpResponse(f'Count is {count}')

class ClassView(View):
    count = 0
    def get(self, request):
        ClassView.count += 1
        return HttpResponse(f'Count is {ClassView.count}')
AClass-based view count variable is instance-specific and resets each request
BBoth views share the same count variable across all requests
CFunction-based view resets count each request; class-based view does not
DFunction-based view uses a global variable; class-based view uses a class variable to track count
Attempts:
2 left
💡 Hint
Consider where the count variable is stored and how Python handles globals and class variables.
🔧 Debug
advanced
2:00remaining
Why does this class-based view raise an error?
This Django class-based view raises an error when accessed. What is the cause?
Django
from django.views import View
from django.http import HttpResponse

class MyView(View):
    def get(self):
        return HttpResponse('Hello')
AHttpResponse is not imported correctly
BMissing 'request' parameter in the 'get' method
CClass does not inherit from the correct base class
DMethod name 'get' is invalid in class-based views
Attempts:
2 left
💡 Hint
Check the method signature for class-based views.
🧠 Conceptual
expert
3:00remaining
Choosing between function-based and class-based views for complex logic
Which statement best explains why you might choose a class-based view over a function-based view in Django for a complex page?
AFunction-based views support middleware better than class-based views, so they are preferred for complex logic
BFunction-based views automatically handle all HTTP methods without extra code, so they are better for complex logic
CClass-based views allow you to organize related HTTP methods and reuse code through inheritance, making complex logic easier to manage
DClass-based views are faster to execute than function-based views, so they improve performance for complex pages
Attempts:
2 left
💡 Hint
Think about code organization and reuse in object-oriented programming.