Django Interview Questions and Answers

Django Interview Questions and Answers

Last updated on 05th Oct 2020, Blog, Interview Question

About author

Arunkumar (Sr Technical Director )

Highly Expertise in Respective Industry Domain with 9+ Years of Experience Also, He is a Technical Blog Writer for Past 4 Years to Renders A Kind Of Informative Knowledge for JOB Seeker

(5.0) | 16321 Ratings 1603

Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design. Built by experienced developers, it takes care of much of the hassle of Web development, so you can focus on writing your app without needing to reinvent the wheel. It’s free and open source.

Below we have listed the top 100 Django interview questions & answers for fresher and experienced candidates to clear the job interview. 

1. What does Django mean?


Django is named after Django Reinhardt, a gypsy jazz guitarist from the 1930s to early 1950s who is known as one of the best guitarists of all time.

2. Which architectural pattern does Django Follow?


Django follows Model-View Template (MVT) architectural pattern.

3. Explain the architecture of Django?


Django is based on MVT architecture. It contains the following layers:

Models: It describes the database schema and data structure.

Views: The view layer is a user interface. It controls what a user sees, the view retrieves data from appropriate models and executes any calculation made to the data and passes it to the template.

Templates: It determines how the user sees it. It describes how the data received from the views should be changed or formatted for display on the page.

Controller: Controller is the heart of the system. It handles requests and responses, setting up database connections and loading add-ons. It specifies the Django framework and URL parsing.

4. Which foundation manages Django web framework?


Django web framework is managed and maintained by an independent and non-profit organization named Django Software Foundation (DSF).

5. Is Django stable?


Yes, Django is quite stable. Many companies like Disqus, Instagram, Pinterest, and Mozilla have been using Django for many years.

6. What are the features available in the Django web framework?


Features available in Django web framework are:

  • Admin Interface (CRUD)
  • Templating
  • Form handling
  • Internationalization
  • Session, user management, role-based permissions
  • Object-relational mapping (ORM)
  • Testing Framework
  • Fantastic Documentation

7. What are the advantages of using Django for web development?


  • It facilitates you to divide code modules into logical groups to make it flexible to change.
  • It provides auto-generated web admin to make website administration easy.
  • It provides pre-packaged API for common user tasks.
  • It provides a template system to define HTML template for your web page to avoid code duplication.
  • It enables you to define what URL is for a given function.
  • It enables you to separate business logic from the HTML.

8. How to create a project in Django?


To start a project in Django, use the command

  • $

and then use the following command:



9. What are the inheritance styles in Django?


There are three possible inheritance styles in Django:

Abstract base classes: This style is used when you only want a parent class to hold information that you don’t want to type out for each child model.

Multi-table Inheritance: This style is used if you are sub-classing an existing model and need each model to have its own database table.

Proxy models: This style is used, if you only want to modify the Python level behavior of the model, without changing the model’s fields.

10. How can you set up the database in Djanago?


To set up a database in Django, you can use the command edit

  • mysite/

It is a normal python module with module level representing Django settings. By default, Django uses SQLite database. It is easy for Django users because it doesn’t require any other type of installation. In the case of other databases you have the following keys in the DATABASE ‘default’ item to match your database connection settings.

Engines:you can change database by using

  • django.db.backends.sqlite3
  • django.db.backends.mysql
  • django.db.backends.postgresql_psycopg2

Name: The name of your database. In the case if you are using SQLite as your database, in that case database will be a file on your computer, Name should be a full absolute path, including file name of that file.

You have to add settings like Password, Host, User, etc. in your database, if you are not choosing SQLite as your database.

11. What does the Django templates contain?


A template is a simple text file. It can create any text-based format like XML, CSV, HTML, etc. A template contains variables that get replaced with values when the template is evaluated and tags (%tag%) that controls the logic of the template.

 12. Is Django a content management system (CMS)?


No, Django is not a CMS. Instead, it is a Web framework and a programming tool that makes you able to build websites.

Subscribe For Free Demo

Error: Contact form not found.

13. What is the use of a session framework in Django?


The session framework facilitates you to store and retrieve arbitrary data on a per-site visitor basis. It stores data on the server side and abstracts the receiving and sending of cookies. Sessions can be implemented through a piece of middleware.

14. How can you set up static files in Django?


There are three main things required to set up static files in Django:


2. run collectstatic

3. set up a Static Files entry on the PythonAnywhere web tab

15. How to use file based sessions?


You have to set the SESSION_ENGINE settings to “django.contrib.sessions.backends.file” to use file based session.

16. What is some typical usage of middlewares in Django?


Some usage of middlewares in Django is:

  • Session management,
  • Use authentication
  • Cross-site request forgery protection
  • Content Gzipping, etc.

17. What do Django field class types do?


The Django field class types specify:

The database column type.

The default HTML widget to avail while rendering a form field.

The minimal validation requirements used in Django admin.

Automatic generated forms.

18. What is the difference between a project and an app in Django?


In Django, a project is the entire application and an app is a module inside the project that deals with one specific requirement. E.g., if the entire project is an ecommerce site, then inside the project we will have several apps, such as the retail site app, the buyer site app, the shipment site app, etc.

19. What is Django Admin Interface?


Django comes with a fully customizable in-built admin interface, which lets us see and make changes to all the data in the database of registered apps and models. To use a database table with the admin interface, we need to register the model in the file.

20. Explain Django’s Request/Response Cycle.


In the Request/Response Cycle, first, a request is received by the Django server. Then, the server looks for a matching URL in the urlpatterns defined for the project. If no matching URL is found, then a response with 404 status code is returned. If a URL matches, then the corresponding code in the view file associated with the URL is executed to build and send a response.

21. What is a model in Django?


A model is a Python class in Django that is derived from the django.db.models.Model class. A model is used in Django to represent a table in a database. It is used to interact with and get results from the database tables of our application.

22. What are migrations in Django?


A migration in Django is a Python file that contains changes we make to our models so that they can be converted into a database schema in our DBMS. So, instead of manually making changes to our database schema by writing queries in our DBMS shell, we can just make changes to our models. Then, we can use Django to generate migrations from those model changes and run those migrations to make changes to our database schema.

23. What are views in Django?


A view in Django is a class and/or a function that receives a request and returns a response. A view is usually associated with urlpatterns, and the logic encapsulated in a view is run when a request to the URL associated with it is run. A view, among other things, gets data from the database using models, passes that data to the templates, and sends back the rendered template to the user as an HttpResponse.

24. What is the use of the include function in the file in Django?


As in Django there can be many apps, each app may have some URLs that it responds to. Rather than registering all URLs for all apps in a single file, each app maintains its own file, and in the project’s file we use each individual file of each app by using the include function.

25. Why is Django called a loosely coupled framework?


Django is called a loosely coupled framework because of its MVT architecture, which is a variant of the MVC architecture. It helps in separating the server code from the client-related code. Django’s models and views take care of the code that needs to be run on the server like getting records from database, etc., and the templates are mostly HTML and CSS that just need data from models passed in by the views to render them. Since these components are independent of each other, Django is called a loosely coupled framework.

26. Why should Django be used for web-development?


  • It allows you to divide code modules into logical groups to make it flexible to change
  • To ease the website administration, it provides auto-generated web admin
  • It provides pre-packaged API for common user tasks
  • It gives you template system to define HTML template for your web page to avoid code duplication
  • It enables you to define what URL be for a given function
  • It enables you to separate business logic from the HTML
  • Everything is in python

27. Explain how you can create a project in Django?


To start a project in Django, you use command

  • $

and then use the command



28. Give an example of how you can write a VIEW in Django?


Views are Django functions that take a request and return a response.  To write a view in Django we take a simple example of “Guru99_home” which uses the template Guru99_home.html and uses the date-time module to tell us what the time is whenever the page is refreshed.  The file we required to edit is called, and it will be inside mysite/myapp/

Copy the below code into it and save the file

  • from datetime import datetime
  • from django.shortcuts import render
  •  def home (request):
  • return render(request, ‘Guru99_home.html’, {‘right_now’: datetime.utcnow()})

Once you have determined the VIEW, you can uncomment this line in

  • # url ( r ‘^$’ , ‘mysite.myapp.views.home’ , name ‘Guru99’),

The last step will reload your web app so that the changes are noticed by the web server.

29. Explain how you can set up static files in Django?


There are three main things required to set up static files in Django

  • Set STATIC_ROOT in
  • run collectstatic
  • set up a Static Files entry on the PythonAnywhere web tab

30. Mention what the Django templates consist of?


The template is a simple text file.  It can create any text-based format like XML, CSV, HTML, etc.  A template contains variables that get replaced with values when the template is evaluated and tags (% tag %) that controls the logic of the template.

31. Explain the use of the session framework in Django?


In Django, the session framework enables you to store and retrieve arbitrary data on a per-site-visitor basis.  It stores data on the server side and abstracts the receiving and sending of cookies.  Sessions can be implemented through a piece of middleware.

32. Explain how you can use file based sessions?


To use file based session you have to set the SESSION_ENGINE settings to “django.contrib.sessions.backends.file”

33. Explain the migration in Django and how you can do it in SQL?


Migration in Django is to make changes to your models like deleting a model, adding a field, etc. into your database schema.  There are several commands you use to interact with migrations.

  • Migrate
  • Makemigrations
  • Sqlmigrate

To do the migration in SQL, you have to print the SQL statement for resetting sequences for a given app name.

  • sqlsequencreset

Use this command to generate SQL that will fix cases where a sequence is out sync with its automatically incremented field data.

34. Mention what command line can be used to load data into Django?


To load data into Django you have to use the command line

  • loaddata.

The command line will search the data and load the contents of the named fixtures into the database.

35. Explain what does makemessages command is used for?


This command line executes over the entire source tree of the current directory and abstracts all the strings marked for translation.  It makes a message file in the locale directory.

Course Curriculum

Enroll in Best Django Training and Get Hired by TOP MNCs

  • Instructor-led Sessions
  • Real-life Case Studies
  • Assignments
Explore Curriculum

36. List out the inheritance styles in Django?


In Django, there is three possible inheritance styles

Abstract base classes: This style is used when you only wants parent’s class to hold information that you don’t want to type out for each child model

Multi-table Inheritance: This style is used If you are subclassing an existing model and need each model to have its own database table

Proxy models: You can use this model, If you only want to modify the Python level behavior of the model, without changing the model’s fields

37. Mention what the Django field class types?


Field class types determines

  • The database column type
  • The default HTML widget to avail while rendering a form field
  • The minimal validation requirements used in Django admin and in automatically generated forms

38. List some typical usage of middlewares in Django.


Some of the typical usage of middlewares in Django are: Session management, user authentication, cross-site request forgery protection, content Gzipping, etc.

39. What is Django ORM?


ORM stands for Object-relational Mapper. Instead of interacting with the database by writing raw SQL queries and converting the data returned from the query into a Python object, ORM allows us to interact with the database using objects of our model class. So, we just interact with our models and ORM converts these changes into SQL queries based on the database we are using, e.g., SQLite.

40. How do templates work in Django?


In Django, templates are used to dynamically generate web content. Django’s templating engine handles templating that involves parsing, processing, and converting the template into an HttpResponse to return back to the client. These templates are by default written in Django Templating Language (DTL), which allows us to output the dynamic content in the templates based on the data passed in by the view.

41. How do we register a model with Django admin?


To register a model with Django’s admin interface, we make changes to our apps file. We have to open the file in the app folder in which our models are. For example, if we have an app named ‘polls’ and we wish to register a model named ‘Question’, then we need to open ‘polls/’ and import the Question model and write: This will register our Question model with the admin site.

42. How do we generate a super user in Django?


In our project folder that contains Django’s script, we have to open the command prompt and type the python createsuperuser command. Then, we need to enter the username, the email, and finally the password, twice (for conformation). This will create a super user for our Django project.

43. Mention some disadvantages of Django.


Django has the following disadvantages:

  • Django’ modules are bulky.
  • It is completely based on Django ORM.
  • Components are deployed together.
  • We must know the full system to work with it.

44. What is Sessions Framework in Django?


The Sessions framework in Django is used to store arbitrary information about the user on the server in the database. This is done because HTTP is a stateless protocol, i.e., it does not store information between subsequent requests. Django uses a cookie containing a special session ID to identify each browser and its associated session with the site.

45. What is a cookie in Django?


A cookie is a small piece of information that is stored in the client browser. It is used to store user’s data in a file permanently (or for the specified time). Cookie has its expiry date and time and gets removed automatically when it gets expired. Django provides in-built methods to set and fetch cookies.

46. What is a middleware in Django?


A middleware is a layer in Django’s Request/Response processing pipeline. Each middleware is responsible for performing some specific functions on the request and/or response, such as caching, gzipping, etc.

47. What is a QuerySet in Django?


A QuerySet in Django is basically a collection of objects from our database. QuerySets are used by the Django ORM. When we use our models to get a single record or a group of records from the database, they are returned as QuerySets.

48. What is Django REST Framework?


Django REST Framework (DRF) is a Django app and a framework that lets us create RESTful APIs rapidly. DRF is especially useful if we have an existing Django web application and we wish to quickly generate an API for it.

49. What is a context in Django?


A context in Django is a dictionary, in which keys represent variable names and values represent their values. This dictionary (context) is passed to the template which then uses the variables to output the dynamic content.

50. List some of the caching strategies that Django supports.


Django supports the following caching strategies:

  • File System Caching
  • Memcached
  • In-memory Caching
  • Database Caching

51. What is a Meta Class in Django?


A Meta class is simply an inner class that provides metadata about the outer class in Django. It defines such things as available permissions, associated database table name, singular and plural versions of the name, etc.

52. When should we generate and apply migrations in a Django project and why?


We should do that whenever we create or make changes to the models of one of the apps in our project. This is because a migration is used to make changes to the database schema, and it is generated based on our models.

53. What is serialization in Django?


Serialization is the process of converting Django models into other formats such as XML, JSON, etc.

54. What are generic views?


When building a web application there are certain kind of views that we build again and again, such as a view that displays all records in the database (e.g., displaying all books in the books table), etc. These kinds of views perform the same functions and lead to repeated code. To solve this issue, Django uses class-based generic views. When using generic views, all we have to do is inherit the desired class from django.views.generic module and provide some information like model, context_object_name, etc.

55. Which companies use Django?


Instagram, Disqus, Mozilla, Bitbucket, Spotify, NASA, Eventbrite, etc.

Course Curriculum

Get Experts Curated Django Certification Course & Build Your Skills

Weekday / Weekend BatchesSee Batch Details

56. Which class do we inherit from in order to perform unit tests?


We inherit from django.test.TestCase in order to perform unit tests as it contains all the methods we need to perform unit tests like assertEquals, assertTrue, etc.

57. Which class do we inherit from in order to perform functional tests?


We inherit from django.test.LiveServerTestCase. It launches a live Django server in the background on setup and shuts it down on teardown. This allows the use of automated test clients, e.g., the Selenium client, to execute a series of functional tests inside a browser and simulate a real user’s actions.

58. What is the django.test.Client class used for?


The Client class acts as a dummy web browser, allowing us to test our views and interact with our Django-powered application programmatically. This is especially helpful for doing integration testing.

59. What are the roles of receiver and sender in signals?


The roles of receiver and sender in signals are:

Receiver: It specifies the callback function which will be connected to the signal.

Sender: It specifies a particular sender to receive a signal from.

60. What is MVT and MVC, how is it related to Django?


MVT that is Model, View, Template, and MVC that is Model View, Controller, are design patterns. Programmers may use, extend or not use these ready to use design patterns.

MVC design pattern was built specifically to separate out business logic and data. MVC allows representing the same data in multiple ways. In MVC pattern Model is the “data” part, View is the “presentation” part and the Controller is the “coordination” part.

MVT is a Model View Template. Here View acts as “Controller” and has no one to one mapping in case of Django. The major difference between the two patterns is that Django takes care of the Controller part. The Django template is an HTML file mixed with Django Template Language. The developer develops the Model, the view and the template then maps it to a URL and then Django does the magic to serve it to the user.

61. Is Django a low-level or high-level Web framework?


Django is the web framework of a high-level Python which was designed for rapid development and clean, realistic design.

62.What foundation manages the Web framework for Django?


Django web framework, non-profit organization called Django Software Foundation (DSF) manages and develops the Django software system. The primary objective of the foundation is the promotion, support and advancement of the Django Web framework.

63. Is Django a framework for content-management (CMS)?


No, Django is not being a CMS. Rather, it’s a Web framework and a programming tool that allows you to build websites.

64. Which are Django’s Signals?


Signals are code pieces that contain information about what’s going on. A dispatcher sends the signals and responds to those signals.

65. Is it mandatory to use the model/database layer?


No. The model/database layer is decoupled from the rest of the framework. These are some Django Interview Questions & Answers. People who are applying for jobs in the same field should go through the interview questions and answers and prepare well. 

66. What is CRUD ?


CRUD means Create, Read, Update and Delete. It provides a memorable framework for reminding developers of how to construct full, usable models when building application programming interfaces (APIs).

67. How to install django ?


To install Django, we need to download and install Python as required depending on the operating system in use. t’s recommended  to create a virtual environment. Run the below command on the terminal and wait until it’s successfully installed.

  • pip install “django>=2.2,<3”

68. How to check the latest version of Django?


To check the latest version of Django, visit their homepage and on the right of the page you’ll see a “Download latest release” button with the latest version on it.

69. What is the list of backends supported by django ?


Backends include: IBM DB2, Microsoft SQL Server, Firebird and ODBC.

70. How to connect mongodb in Django ?


MongoDB can be connected to Django by adding the DATABASES object with its default object in the file and specifying the ENGINE’s value as django and the NAME’s value as the name of the MongoDB database you want to connect to.

71. What is the Rest API ?


A REST API is an application program interface that uses HTTP requests to GET, PUT, POST and DELETE data.

72. How to Fetch data from apis using Django ?


We use the Fetch API and SessionAuthentication  by adding it to the file on the server and on the client, including  the getCookie method. Finally, use the fetch method to call your endpoint.

73. How to update the data from apis ?


We update data by sending PUT requests. Add a new path in the data model urlpatterns from which the update will be sent to. We then add an update method to the serializer that will do the update.

74. What is Authentication ?


Authentication is the process or action of verifying the identity of a user or process.

75. What are the types of Authentication in REST API ?


Token based authentication and Session based authentication.

django Sample Resumes! Download & Edit, Get Noticed by Top Employers! Download

76. What is a token based authentication system ?


A token based authentication system is a security system that authenticates the users who attempt to log in to a server, a network, or some other secure system, using a security token provided by the server

77. Can we use django apis in mobile application development ?  



78. Explain Mixins in Django ?


A mixin is a special kind of multiple inheritance. There are two main situations where mixins are used: to provide a lot of optional features for a class and to use one particular feature in a lot of different classes

79. How is a request processed in Django ?


When the user makes a request of your application, a WSGI handler is instantiated, which:

  • imports your file and Django’s exception classes.
  • loads all the middleware classes it finds in the MIDDLEWARE_CLASSES or MIDDLEWARES(depending on Django version) tuple located in
  • builds four lists of methods which handle processing of request, view, response, and exception.
  • loops through the request methods, running them in order
  • resolves the requested URL
  • loops through each of the view processing methods
  • calls the view function (usually rendering a template)
  • processes any exception methods
  • loops through each of the response methods, (from the inside out, reverse order from request middlewares)
  • finally builds a return value and calls the callback function to the web server

80. When to use an iterator in Django ORM ?


The iterator is used when  processing results that take up a large amount of available memory (lots of small objects or fewer large objects).

81. What are signals in Django ?


Signals allow certain senders to notify a set of receivers that some action has taken place. They’re especially useful when many pieces of code may be interested in the same events.

82. How to implement social login authentication in Django ? 


Run the development server to make sure all is in order. The install python-social-auth using the pip install command. Update to include/register the library in the project  Update the database by  making migrations. Update the Project’s urlpatterns in to include the main auth URLs. Create a new app and make sure to use the callback url In the project directory, add a file and grab the consumer key and consumer secret and add them to the config file. Finally add urls to the config file to specify the login and redirect urls. Do a sanity check and add friendly views.

83. Where to store static files in django ?


Static files are stored in the folder called static in the Django app.

84. Is Django Open source ?



85. How to set an unset session in django ?


To set a session , set a key and a value in the session object. To unset a session Django, use the in-built Python del keyword to delete the session by specifying the key.

86. What is url mapping and how to do it in django ?


To map an URL,  open the file and add a path entry to the urlpatterns array specifying the path string, the view function, and the name of the view function.

87. What are population websites built on django ?


Sites include Disqus, Instagram, Knight Foundation, MacArthur Foundation.

88. How to create a custom sql query in django ?


To create a custom sql query ,use the database connection, call below to get a cursor object.

  • connection.cursor()

Then, call below command to execute the SQL

  • cursor.execute(sql, [params])

89. What are the types of Model relationships in django ?


Types of model relationships  include: One to many, Many to many,  One to one model relationships.

90. What is context in django ?


Context is a dictionary with variable names as the key and their values as the value. A Context object is the context in which the template is being rendered.

91. What happens when a visitor lands on a Django page?


  • Django checks the various URLs patterns you have created and uses the information to retrieve the view.
  • The view processes the request, querying your database if necessary.
  • The view passes the requested information on to your template.
  • The template renders the data in a layout you have created and displays the page.

92. Can you create a singleton object in python?If yes, how do you do it?


Yes, you can create a singleton object. Here’s how you do it :


  • class Singleton(object):
  • def __new__(cls,*args,**kwargs):
  • if not hasattr(cls,’_inst’):
  • cls._inst = super(Singleton,cls).__new__(cls,*args,**kwargs)
  • return cls._inst 

93. What is the Controller in the MVC framework of Django?


As Django implements in MTV framework, these three components communicate with each other via the controller and that controller is actually Django framework. The Django framework does the controlling part itself.

94. What is CSRF? 


CSRF – Cross Site Request Forgery. Csrf tokens could also be sent to a client by an attacker due to session fixation or other vulnerabilities or guessed via a brute-force attack, rendered on a malicious page that generates thousands of failed requests.

95. How is the reusability feature of Django different from the rest of the frameworks? 


Django offers maximum code reusability to the developers as compared to other frameworks. This framework is also a collection of various applications including login application or signup application. With the help of this framework, a large number of applications can directly be copied from one directory to the next following some of the files. With this framework, developers can easily work over the application without writing the new sign up application. This is the reason which supports the rapid development framework in Django and there are no other compatible frameworks supporting this level of code reusability.

Are you looking training with Right Jobs?

Contact Us

Popular Courses