Python - Django Interview Questions and Answers
Python - Django Interview Questions and Answers
Answers
1. What is Django?
Ans: 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..
6. Is Django stable?
Ans: Yes, Django is quite stable. Many companies like Disqus, Instagram, Pinterest, and Mozilla
have been using Django for many years.
9. How to create a project in Django?
Ans: To start a project in Django, use the command $django-admin.py and then use the following
command:
Project
_init_.py
manage.py
settings.py
urls.py
12. What does the Django templates contain?
Ans: 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.
13. Is Django a content management system (CMS)?
Ans: No, Django is not a CMS. Instead, it is a Web framework and a programming tool that makes
you able to build websites.
20. Given a model named ‘User’ that contains a DateTime field named
‘last_login’, how do you query for users that have never logged in?
A. User.objects.filter( last_login=Null )
B. User.objects.filter( last_login__null=True )
C. User.objects.filter( last_login__isnull=False )
D. User.objects.filter( last_login__isnull=True )
E. User.objects.filter( last_login=Never )
Ans: D
21. What does the Django command `manage.py shell` do?
A. Starts a command line in whatever $SHELL your environment uses.
B. Starts a Django command prompt with your Python environment pre-loaded.
C. Starts a Python command prompt with your Django environment pre-loaded.
D. Loads a special Pythonic version of the Bash shell.
E. Loads a Python command prompt you can use to sync your database schema remotely.
Ans: C
22. Assuming you’ve imported the proper Django model file, how do you
add a ‘User’ model to the Django admin?
A. admin.register( Users )
B. admin.site( self, User )
C. user.site.register( Admin )
D. users.site.register( Admin )
E. admin.site.register( User )
Ans: E
23. What is the Django command to start a new app named ‘users’ in an
existing project?
A. manage.py –newapp users
B. manage.py newapp users
C. manage.py –startapp users
D. manage.py startapp users
E. manage.py start users
Ans: D
27. After you make a new ‘app’ in your existing Django project, how do
you get Django to notice it?
A. No additional action is required, Django notices new apps automatically.
B. Run the `manage.py validate` command, and then start a new shell.
C. Run the `manage.py syncdb` command.
D. In settings.py, add the app to the PROJECT_APPS variable.
E. In settings.py, add the new app to the INSTALLED_APPS variable.
Ans: E
Our Upcoming Webinar/Training
Free Webinar | RPA & AI for Project Managers
Free Webinar | How to become an RPA developer without coding
RPA UiPath Online Training (Weekend)
RPA Challenges
Our Interview Q & A
Blue Prism Interview Questions & Answers
UiPath Interview Questions & Answers
Python Interview Questions & Answers
Django Interview Questions & Answers
Pandas Interview Questions & Answers
Machine Learning Interview Questions And Answers
Our Blogs
Cognitive RPA And The Need For The Change
Non_IT Person UiPath RPA Journey
Future of Manufacturing Using AI
The Difference Between Artificial Intelligence, Machine learning And Deep Learning
Top 10 Key Features to Grow your Career with RPA
How Robotics Industry Overcome the Awareness Gap?
RPA : Is it the fresh IT job killer?
THE HISTORY OF DATA SCIENCE
Fundamentals of Robotic Process Automation (RPA)
29. How do you define a ‘name’ field in a Django model with a maximum
length of 255 characters?
A. name = models.CharField(max_len=255)
B. model.CharField(max_length=255)
C. name = models.CharField(max_length=255)
D. model = CharField(max_length=255)
E. name = model.StringField(max_length=auto)
Ans: C
31. What is the most easiest, fastest, and most stable deployment choice
in most cases with Django?
A. FastCGI
B. mod_wsgi
C. SCGI
D. AJP
Ans: B
33. Assuming you have a Django model named ‘User’, how do you
define a foreign key field for this model in another model?
A. model = new ForeignKey(User)
B. user = models.IntegerKey(User)
C. user = models.ForeignKey(User)
D. models.ForeignKey( self, User )
Ans: C
34. What preferred method do you add to a Django model to get a better
string representation of the model in the Django admin?
A. __unicode__
B. to_s( self )
C. __translate__
D. __utf_8__
Ans: A
39. What is the correct syntax for including a class based view in a
URLconf?
A. (r’^pattern/$’, YourView.as_view()),
B. (r’^pattern/$’, YourView.init()),
C. (r’^pattern/$’, YourView),
D. (r’^pattern/$’, YourView()),
Ans: A
42. In Django how would you retrieve all the ‘User’ records from a given
database?
A. User.objects.all()
B. Users.objects.all()
C. User.all_records()
D. User.object.all()
E. User.objects
Ans: A
44. What is the Django shortcut method to more easily render an html
response?
A. render_to_html
B. render_to_response
C. response_render
D. render
Ans: B
57. What is the use of the include function in the urls.py file
in Django?
Ans: 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 urls.py file, each app maintains its own
urls.py file, and in the project’s urls.py file we use each individual urls.py file of each app by using the
include function.
60. Why Django should be used for web-development?
Ans:
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
61. Explain how you can create a project in Django?
Ans: To start a project in Django, you use command $ django-admin.py and then use
the command
Project
_init_.py
manage.py
settings.py
urls.py
62. Explain how you can set up the Database in Django?
Ans: You can use the command edit mysite/setting.py , it is a normal python module
with module level representing Django settings.
Django uses SQLite by default; it is easy for Django users as such it won’t require any
other type of installation. In the case your database choice is different that you have to
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.backeneds.mysql’, ‘django.db.backends.postgresql_psycopg2’,
‘django.db.backends.oracle’ and so on
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.
If you are not choosing SQLite as your database then setting like Password, Host, User,
etc. must be added.
64. Explain how you can setup static files in Django?
Ans: There are three main things required to set up static files in Django
Set STATIC_ROOT in settings.py
run manage.py collectsatic
set up a Static Files entry on the PythonAnywhere web tab
65. Mention what does the Django templates consists of?
Ans: 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.
67. Explain how you can use file based sessions?
Ans: To use file based session you have to set the SESSION_ENGINE settings to
“django.contrib.sessions.backends.file”
68. Explain the migration in Django and how you can do in SQL?
Ans: 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.
django-admin.py sqlsequencreset
Use this command to generate SQL that will fix cases where a sequence is out sync
with its automatically incremented field data.
69. Mention what command line can be used to load data into Django?
Ans: To load data into Django you have to use the command line Django-admin.py
loaddata. The command line will searches the data and loads the contents of the
named fixtures into the database.
76. How do you make a Django app that is test driven and will display
Fibonacci’s sequence?
This will reload the site making changes obvious.
Ans: Keep in mind that it should take an index number and output the sequence.
Additionally, there should be a page that shows the most recent generated sequences.
Following is one of the solution for generating fibonacci series:
Default
def fib(n):
“Complexity: O(log(n))”
if n <= 0:
return 0
i = n – 1
(a, b) = (1, 0)
(c, d) = (0, 1)
while i > 0:
if i % 2:
(a, b) = (d * b + c * a, d * (b + a) + c * b)
(c, d) = (c * c + d * d, d * (2 * c + d))
i = i / 2
return a + b
Default
Below is a model that would keep track of latest numbers:
from django.db import models
class Fibonacci(models.Model):
parameter = models.IntegerField(primary_key=True)
result = models.CharField(max_length=200)
time = models.DateTimeField()
DefaultFor view, you can simply use the following code:
from models import Fibonacci
def index(request):
result = None
if request.method==”POST”:
try:
n=int(request.POST.get(‘n’))
except:
return Http404
try:
result = Fibonacci.objects.get(pk=n)
result.time = datetime.now()
except DoesNotExist:
result = str(fib(n))
result = Fibonacci(n, result, datetime.now())
result.save()
return direct_to_template(request, ‘base.html’, {‘result’:result.result})
You could use models to get last ‘n’ entities.
77.What makes up Django architecture?
Ans: Django runs on MVC architecture. Following are the components that make up
django architecture:
Models: Models elaborate back-end stuffs like database schema.(relationships)
Views: Views control what is to be shown to end-user.
Templates: Templates deal with formatting of view.
Controller: Takes entire control of Models.A MVC framework can be compared
to a Cable TV with remote. A Television set is View(that interacts with end user), cable
provider is model(that works in back-end) and Controller is remote that controls which
channel to select and display it through view.
79.Can you create singleton object in python?If yes, how do you do it?
Ans: Yes, you can create singleton object. Here’s how you do it :
Default
12 class Singleton(object):def __new__(cls,*args,**kwargs):
3 if not hasattr(cls,’_inst’):
4 cls._inst = super(Singleton,cls).__new__(cls,*args,**kwargs)
5 return cls._inst
80. Mention caching strategies that you know in Django!
Ans: Few caching strategies that are available in Django are as follows:
File sytem caching
In-memory caching
Using Memcached
Database caching
82. What do you think are limitation of Django Object relation
mapping(ORM) ?
Ans: If the data is complex and consists of multiple joins using the SQL will be clearer.
If Performance is a concern for your, ORM aren’t your choice. Genrally. Object-relation-
mapping are considered good option to construct an optimized query, SQL has an
upper hand when compared to ORM.
83. How to Start Django project with ‘Hello World!’? Just say hello world
in django project.
Ans: There are 7 steps ahead to start Django project.
Step 1: Create project in terminal/shell
f2finterview:~$ django-admin.py startproject sampleproject
Step 2: Create application
f2finterview:~$ cd sampleproject/
f2finterview:~/sampleproject$ python manage.py startapp sampleapp
Step 3: Make template directory and index.html file
f2finterview:~/sampleproject$ mkdir templates
f2finterview:~/sampleproject$ cd templates/
f2finterview:~/sampleproject/templates$ touch index.html
Step 4: Configure initial configuration in settings.py
Add PROJECT_PATH and PROJECT_NAME
import os
PROJECT_PATH = os.path.dirname(os.path.abspath(__file__))
PROJECT_NAME = ‘sampleproject’
Add Template directories path
TEMPLATE_DIRS = (
os.path.join(PROJECT_PATH, ‘templates’),
)
Add Your app to INSTALLED_APPS
INSTALLED_APPS = (
‘sampleapp’,
)
Step 5: Urls configuration in urls.py
from django.conf.urls.defaults import patterns, include, url
urlpatterns = patterns(”,
url(r’^$’, ‘sampleproject.sampleapp.views.index’, name=’index’),
)
Step 6: Add index method in views.py
from django.shortcuts import render_to_response, get_object_or_404
from django.template import RequestContext
def index(request):
welcome_msg = ‘Hello World’
return
render_to_response(‘index.html’,locals(),context_instance=RequestContext(request))
Step7: Add welcome_msg in index.html
<!DOCTYPE html>
<html>
<body>
<h1>My First Heading For Say…</h1>
<p>{{welcome_msg}}</p>
</body>
</html>
84. How to login with email instead of username in Django?
Ans: Use bellow sample method to login with email or username.
from django.conf import settings
from django.contrib.auth import authenticate, login, REDIRECT_FIELD_NAME
from django.shortcuts import render_to_response
from django.contrib.sites.models import Site
from django.template import Context, RequestContext
from django.views.decorators.cache import never_cache
from django.views.decorators.csrf import csrf_protect
@csrf_protect
@never_cache
def
signin(request,redirect_field_name=REDIRECT_FIELD_NAME,authentication_form=Lo
ginForm):
redirect_to = request.REQUEST.get(redirect_field_name,
settings.LOGIN_REDIRECT_URL)
form = authentication_form()
current_site = Site.objects.get_current()
if request.method == “POST”:
pDict =request.POST.copy()
form = authentication_form(data=request.POST)
if form.is_valid():
username = form.cleaned_data[‘username’]
password = form.cleaned_data[‘password’]
try:
user = User.objects.get(email=username)
username = user.username
except User.DoesNotExist:
username = username
user = authenticate(username=username, password=password)
# Log the user in.
login(request, user)
return HttpResponseRedirect(redirect_to)
else:
form = authentication_form()
request.session.set_test_cookie()
if Site._meta.installed:
current_site = Site.objects.get_current()
else:
current_site = RequestSite(request)
return render_to_response(‘login.html’,locals(),
context_instance=RequestContext(request))
85. How Django processes a request?
Ans: When a user requests a page from your Django-powered site, this is the algorithm
the system follows to determine which Python code to execute:
Django determines the root URLconf module to use. Ordinarily, this is the value of the
ROOT_URLCONF setting, but if the incoming HttpRequest object has an attribute
called urlconf (set by middleware request processing), its value will be used in place of
the ROOT_URLCONF setting.
Django loads that Python module and looks for the variable urlpatterns. This should be
a Python list, in the format returned by the function django.conf.urls.patterns()
Django runs through each URL pattern, in order, and stops at the first one that matches
the requested URL.
Once one of the regexes matches, Django imports and calls the given view, which is a
simple Python function (or a class based view). The view gets passed an HttpRequest
as its first argument and any values captured in the regex as remaining arguments.
If no regex matches, or if an exception is raised during any point in this process, Django
invokes an appropriate error-handling view.
86. How to filter latest record by date in Django?
Ans: Messages(models.Model):
message_from = models.ForeignKey(User,related_name=”%(class)s_from”)
message_to = models.ForeignKey(User,related_name=”%(class)s_to”)
message=models.CharField(max_length=140,help_text=”Your message”)
created_on = models.DateTimeField(auto_now_add=True)
class Meta:
db_table = ‘messages’
Query:messages = Messages.objects.filter(message_to = user).order_by(‘-created_on’)
[0]
Output:
message_from | message_to | message | created_on
——————|—————–|——————–|——————–
Stephen | Anto | Hi, How are you? | 2012-10-09 14:27:48
87.How to filter data from Django models using python datetime?
Ans: Assume Bellow model for storing messages with timelines
class Message(models.Model):
from = models.ForeignKey(User,related_name = “%(class)s_from”)
to = models.ForeignKey(User, related_name = “%(class)s_to”)
msg = models.CharField(max_length=255)
rating = models.IntegerField(blank=’True’,default=0)
created_on = models.DateTimeField(auto_now_add=True)
updated_on = models.DateTimeField(auto_now=True)
Filter messages with specified Date and Time
today = date.today().strftime(‘%Y-%m-%d’)
yesterday = date.today() – timedelta(days=1)
yesterday = yesterday.strftime(‘%Y-%m-%d’)
this_month = date.today().strftime(‘%m’)
last_month = date.today() – timedelta(days=32)
last_month = last_month.strftime(‘%m’)
this_year = date.today().strftime(‘%Y’)
last_year = date.today() – timedelta(days=367)
last_year = last_year.strftime(‘%Y’)
today_msgs = Message.objects.filter(created_on__gte=today).count()
yesterday_msgs = Message.objects.filter(created_on__gte=yesterday).count()
this_month_msgs =
Message.objects.filter(created_on__month=this_month,created_on__year=this_year).c
ount()
last_month_msgs =
Message.objects.filter(created_on__month=last_month,created_on__year=this_year).c
ount()
this_year_msgs = Message.objects.filter(created_on__year=this_year).count()
last_year_msgs = Message.objects.filter(created_on__year=last_year).count()
88. What does Django mean?
Ans: 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.
89. Which architectural pattern does Django Follow?
Ans: Django follows Model-View Controller (MVC) architectural pattern.
90. Is Django a high level web framework or low level framework?
Ans: Django is a high level Python’s web framework which was designed for rapid
development and clean realistic design.
91. How would you pronounce Django?
Ans: Django is pronounced JANG-oh. Here D is silent.
92. How does Django work?
Ans: Django can be broken into many components:
Models.py file: This file defines your data model by extending your single line of code
into full database tables and add a pre-built administration section to manage content.
Urls.py file: It uses regular expression to capture URL patterns for processing.
Views.py file: It is the main part of Django. The actual processing happens in view.
When a visitor lands on Django page, first Django checks the URLs pattern you have
created and uses information to retrieve the view. After that view processes the request,
querying your database if necessary, and passes the requested information to template.
After that the template renders the data in a layout you have created and displays the
page.
93. Which foundation manages Django web framework?
Ans: Django web framework is managed and maintained by an independent and non-
profit organization named Django Software Foundation (DSF).
95. What are the features available in Django web framework?
Ans: 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
96. What are the advantages of using Django for web development?
Ans:
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 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.
104. Explain Django.
Ans. Django is web application framework which is a free and open source. Django is
written in Python. It is a server-side web framework that provides rapid development of
secure and maintainable websites.
106. Which architectural pattern does Django follow?
Ans. Django follows Model-View-Template (MVT) architectural pattern.
The graph below shows the MVT based control flow.
Request is made by the user for a resource to the Django, Django works as a controller
and check to the available resource in URL.
When the mapping of URL is found , a view is called that interact with model and
template, it renders a template.
After that Django responds back to the user and sends a template as a response.
107. Explain Django architecture.
Ans. Django follows MVT (Model View Template) pattern. It is slightly different from
MVC.
Model: It is the data access layer. It contains everything about the data, i.e., how to
access it, how to validate it, its behaviors and the relationships between the data.
Let’s see an example. We are creating Employee model who has two fields first_name
and last_name.
from django.db import models
class Employee(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)
View: It is the business logic layer. This layer contains the logic that accesses the
model and defers to the appropriate template. It is like a bridge between the model and
the template.
import datetime
# Create your views here.
from django.http import HttpResponse
def index(request):
now = datetime.datetime.now()
html = “<html><body><h3>Now time is %s.</h3></body></html>” % now
return HttpResponse(html) # rendering the template in HttpResponse
Template: It is a presentation layer. This layer contains presentation-related decisions,
i.e., how something should be displayed on a Web page or other type of document.
For the configuration of the templates, we have to provide some entries in settings.py
file.
TEMPLATES = [
{
‘BACKEND’: ‘django.template.backends.django.DjangoTemplates’,
‘DIRS’: [os.path.join(BASE_DIR,’templates’)],
‘APP_DIRS’: True,
‘OPTIONS’: {
‘context_processors’: [
‘django.template.context_processors.debug’,
‘django.template.context_processors.request’,
‘django.contrib.auth.context_processors.auth’,
‘django.contrib.messages.context_processors.messages’,
],
},
},
]
108. Explain the working of Django?
Ans. Django can be broken into following components:
Models.py : Models.py file will define your data model by extending your single line of
code into full database tables and add a pre-built administration section to manage
content.
Urls.py : Uses a regular expression to capture URL patterns for processing.
Views.py : This is main part of Django. The presentation logic is defined in this.
When a visitor visits Django page, first Django checks the URLs pattern you have
created and use this information to retrieve the view. Then it is the responsibility of view
to processes the request, querying your database if necessary, and passes the
requested information to a template.
Then template renders the data in a layout you have created and displayed the page.
109. Name the foundation that manages the Django web framework?
Ans. Django is managed and maintained by an independent and non-profit organization
named . Goal of foundation is to promote, support, and advance the Django Web
framework.
110. Comment about Django’s stability?
Ans. Django is quite stable web development framework.There are many companies
like Disqus, Instagram, Pinterest, and Mozilla that are using Django for many years.
111. Specify the features available in Django web framework?
Ans. Features available in Django web framework are:
Admin Interface (CRUD)
Templating
Form handling
Internationalization
A Session, user management, role-based permissions
Object-relational mapping (ORM)
Testing Framework
Fantastic Documentation
112. Explain the advantages of Django?
Ans. Advantages of Django:
Web development framework Django is a Python’s framework which is easy to learn.
It is clear and readable.
It is versatile.
It is fast to write.
No loopholes in design.
It is secure.
It is scalable.
It is versatile.
113. What are the disadvantages of Django?
Ans. Following is the list of disadvantages of Django:
Django’ modules are bulky.
It is completely based on Django ORM.
Components are deployed together.
You must know the full system to work with it.
114. What are the inheritance styles in Django?
Ans. There are three possible inheritance styles in Django:
1) Abstract base class: In this only parent’s class to hold information that you don’t want
to type out for each child model then this style is used.
2) Multi-table Inheritance: This inheritance style is used if you are sub-classing an
existing model and need each model to have its database table.
3) Proxy models: Proxy models is used, if you only want to modify the Python level
behavior of the model, without changing the model’s fields.
115. Is Django a CMS i.e. content management system?
Ans. No, Django is not a CMS. But, it is a Web framework and a programming tool that
makes you able to build websites.
116. Can you set up static files in Django? How?
Ans. Yes we can. We need to set three main things to set up static files in Django:
1) Set STATIC_ROOT in settings.py
2) run manage.py collect static
3) Static Files entry on the PythonAnywhere web tab
117. What is some typical usage of middlewares in Django?
Ans. Some usage of middlewares in Django is:
Session management,
Use authentication
Cross-site request forgery protection
Content Gzipping
119. Explain the use of Django-admin.py and manage.py?
Ans. admin.py: This is Django’s command line utility for administrative tasks.
Manage.py: This file is created automatically in each Django project. It is a thin wrapper
around the Django-admin.py. It has the following usage:
It puts your project’s package on sys.path.
DJANGO_SETTING_MODULE is the environment variable used to points to your
project’s setting.py file.
123. What is Django Session?
Ans. In Django session is a mechanism to store information on the server side during
the interaction with the web application. Session stores in the database and also allows
file-based and cache based sessions, by default,
125. What is the difference between Flask and Django?
Comparison Factor Django Flask
1
importdjango
2 print(django.get_version())
132. What is ORM ? Advantages of ORM ?
ORM (Object-relational mapping) is a programming technique for converting data
between incompatible type systems using object-oriented programming languages.
Advantages include:
Concurrency support
Cache management
134. What is migration in django ?
Migrations are a way of propagating changes made in the model into the database
schema (adding a field, deleting a model, etc.)
138. How to Create APIs in Django ?
Create a project directory, create python virtual environment, and activate it, install
Django and djangorestframework using the pip install command. In the same project
directory, create project using the command django-admin.py startproject api. Start
the app. Add the rest_framework and the Djano app to INSTALLED_APPS to settings.
Open the api/urls.py and add urls for the Django app. We can then create models and
make migrations, create serializers, and finally wiring up the views.
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.