By continuing to navigate on this website, you accept the use of cookies to serve you more relevant services & content .
For more information and to change the setting of cookies on your computer, please read our Cookie Policy.

Introduction to Django's Class based views - Understanding how a class based view works

Django has MVT architecture. A view in Django is just a callable that takes a request and returns a response. But this can be more than just a function, that contains the actual business logic of an URL. In addition to normal function based views Django provides of some classes which can be used as views. These allow you to structure your views and reuse code by inheriting them. In the current blog post let us see how a Class Based view work. Using this explanation we can easily override any function of built in generic class based views.  For this we’ll see a basic view.

In views.py

from django.http import HttpResponse
from django.views.generic import View

class TestView(View):
     
    def get(self, request, *args, **kwargs):
         return HttpResponse('Hello, World!')

In urls.py

from django.conf.urls import url
from testapp.views import TestView
urlpatterns = [
    url(r'^hello-world/$', TestView.as_view(), name='hello_world'),
]

When we type the url in the browser ‘http://locahost:8000/hello-world/’, it would be dispatched to the corresponding view to its as_view() function.
The as_view() function will call the dispatch() function.

dispatch():

This function validates if the request method i.e GET or POST or any other is in allowed methods of the view by checking http_method_names attribute. If the request is in corresponding method then it will dispatch the request to corresponding method. In our case as it is get request it calls get(request, *args, **kwargs). If the request method is not in http_method_names then it will call http_method_not_allowed method.

http_method_not_allowed:

This method’s default implementation returns HttpResponseNotAllowed with a list of allowed methods in plain text.

This is simple explanation of how a class based view work, we'll learn more of Different kinds of View classes and their usages in coming blog posts.

    Posted On
  • 27 July 2013
  • By
  • Micropyramid

Need any Help in your Project?Let's Talk

Latest Comments
Related Articles
Extract data from PDF and all Microsoft Office files in python

The quick way to get/extract text from PDFs in Python is with the Python library "slate". Slate is a Python package that simplifies the process ...

Continue Reading...
Django Forms basics explained

Django forms is powerful module to help django application development in rendering html from model, validate input from http request to model specifications. And we ...

Continue Reading...
Improving page speed score in Google Page Score test- PART2

In our previous blog post we got an idea of what are the things that Google's Page Speed Insights will take into count to give ...

Continue Reading...
open source packages

Subscribe To our news letter

Subscribe and Stay Updated about our Webinars, news and articles on Django, Python, Machine Learning, Amazon Web Services, DevOps, Salesforce, ReactJS, AngularJS, React Native.
* We don't provide your email contact details to any third parties