Web Development is an evergreen domain with plenty of opportunities. Now that you have landed on this blog, you are either a web developer or aspiring to be one. Either way, you should know that Python Django Certification is a skill in high demand for quick web project development and has been nicknamed as “the web framework for perfectionists with deadlines”. I am going to talk about one of the most trending web development framework Django and will help you get started with it. In this Django tutorial, I will introduce you to the fundamental concepts of Django and help you understand how everything fits together while building a Django application. So let’s get started with this Django tutorial and understand all the topics in the following sequence:

Django Tutorial: Why Web Framework and Why Django?

Before understanding Django, let’s first understand why do we need a web framework? A web framework is a server-side application framework which is designed to support the development of dynamic websites. With the help of a framework, you don’t have to handle the hassles of web development and its various components. Therefore, it makes the life of a web application developer much easier as they don’t have to code from scratch. There are various web development frameworks available in the market. Some of them are listed below:

One of the highlights of Django is that it is built on python. From several years python has been the most popular programming language and continues to be a favorite among the skilled programmers. Hence, Django delivers transparent and high-quality code writing, making it important for the developers as well as the customers. It has various other advantages as it has an automatic administration interface, Object-relational mapper(ORM) and many more. So let’s understand what exactly it is.

What is Django Python?

djangoLogo - django Tutorial - Edureka

Django is an open source web framework which was named after Django Reinhardt. 

It follows the principle of “Don’t Repeat Yourself”.  As the name says, this principal is all about keeping the code simple and non repeating. Django is also a high level, MVT architect which stands for Model View Template.

Is Django easy to learn?

Django is very easy to learn and get started with. You can learn Django in a couple of weeks, however to become really good at Django you will need time and you will need to build projects.

How to Install Django?

In this Python Django Tutorial you can learn Django from scratch on how to install Django and other concepts which are ideal for both beginners and professionals.

Is Django better than PHP?

Advantages of Django over PHP:

  • Better Design
  • Python And Long Term
  • Better Web Framework
  • Simpler Syntax
  • Debugging Tools

Next, let us move ahead in this Django tutorial and understand the architecture or internal working of Django.

Django Architecture 

Django follows a MVC- MVT architecture.

MVC stands for Model View Controller. It is used for developing the web publications, where we break the code into various segments. Here we have 3 segments, model view and a controller.

mvc - Django Tutorial - Edureka

Model –  Model is used for storing and maintaining your data. It is the backend where your database is defined.

Views – In Django templates, views are in html. View is all about the presentation and it is not at all aware of the backend. Whatever the user is seeing, it is referred to a view.

Controller – Controller is a business logic which will interact with the model and the view.

Now that we have understood MVC, lets learn about Django MVT pattern.

MVT stands for Model View Template. In MVT, there is a predefined template for user interface. Let’s take an example, say you want to write several static html forms like hello user 1, hello user2 and so on. With template, you will be having only one file that prints hello along with the variable name. Now this variable will be substituted in that particular template using some jinja logic. That’s the magic of template, you don’t need to rewrite the code again n again!

Now you might be wondering where is the controller?

In the case of MVT, Django itself takes care of the controller part, it’s inbuilt.

Moving ahead in Django tutorial, let’s understand how things work internally.

Architecture - Django Tutorial - Edureka

In the above image, template is your front end which will interact with the view and the model will be used as a backend. Then view will access both the model and the templates and maps it to a url. After that, Django plays the role of controller and serves it to the user.

Now that you understand the architecture or how Django works internally, let’s move ahead in Django tutorial and install Django in our systems. 

Is Django frontend or backend?

  • Neither, Django is a framework, Python is the language in which Django is written.
  • For the front end, Django helps you with data selection, formatting, and display. It features URL management, a templating language, authentication mechanisms.
  • For the backend, Django comes with an ORM that lets you manipulate your data source with ease, forms to process user input and validate data and signals, and an implementation of the observer pattern.

How do I start Django in Python?

Django Installation

Let me guide you through the process of installing Django on your system. Just follow the below steps:

Step 1: Go to the link: https://www.djangoproject.com/download/Step 2: Type the pip command on command prompt and installation will get started.

Refer to the below screenshot to get a better understanding.

DjangoInstallation - Django tutorial - Edureka

By following the above steps, you are done with the Django installation part. Next, its time we build our own web application.

Is Python enough for Web development?

Python indeed is a favorite among application programmers as well as web developers (thanks to Django) owing to its strong emphasis on readability and efficiency.

Build Your First Web Application in Django

For creating a web application, first let’s create a project. To create a project, just enter into a directory where you would like to share your code, then run the following command:

1 django - admin startproject myproject

Once your project has been created, you will find a list of files inside the project directory. Let’s discuss each one of them.

manage.py – It is a command-line utility that lets you interact with this Django project in various ways. 

myproject/ – It is the actual Python package for your project. It is used to import anything, say –  myproject.urls. 

ProjectDirectory - Django tutorial - Edureka

init.py – Init just tells the python that this is to be treated like a python package.

settings.py – This file manages all the settings of your project. 

urls.py – This is the main controller which maps it to your website.

wsgi.py – It serves as an entry point for WSGI compatible web servers.

Note that to create your application, make sure you are in the same directory as manage.py and then type the below command:

1 python manage.py startapp webapp

Now if we look at the ‘webapp’ directory, we have some extra things from the original myproject. It includes model, test which are related to your backend databases. 

Next in Django tutorial, you need to import your application manually inside your project settings. For that, open your myproject/settings.py and add your app manually:

123456789 INSTALLED_APPS = ( 'webapp' , 'django.contrib.admin' , 'django.contrib.auth' , 'django.contrib.contenttypes' , 'django.contrib.sessions' , 'django.contrib.messages' , 'django.contrib.staticfiles' , )

Once you have installed your app, let’s create a view now. Open your webapp/views.py and put the below code in it:

12345678910 from django.shortcuts import render from django.http import HttpResponse   def index(request): return   HttpResponse("   <H2>HEY! Welcome to Edureka! < / H2>    ")

In the above code, I have created a view which returns httpResponse. Now we need to map this view to a URL. We need a URLconf in our application. So let’s create a new python file “urls.py” inside our webapp. In webapp/urls.py include the following code:

12345 from django.conf.urls import url from . import views urlpatterns = [ url(r '^$' , views.index, name = 'index' ), ]

In the above code, I have referenced a view which will return index (defined in views.py file). The url pattern is in regular expression format where ^ stands for beginning of the string and $ stands for the end.

The next step is to point the root URLconf at the webapp.urls module. Open your myproject/urls.py file and write the below code:

1234567 from django.conf.urls import include, url from django.contrib import admin   urlpatterns = [ url(r '^admin/' , include(admin.site.urls)), url(r '^webapp/' , include( 'webapp.urls' )), ]

In the above code, I have added my webapp and included the webapp.urls. Now don’t forget to import django.conf.urls.include and insert an include() in the urlpatterns list. The include() function allows referencing other URLconfs. 

Note that the regular expression doesn’t have a ‘$’ but rather a trailing slash, this means whenever Django encounters include(), it chops off whatever part of the URL matched up to that point and sends the remaining string to include URLconf for further processing.

We are now done with the coding part! Let’s now start the server and see what happens. To start the server, type the below command:

1 python manage.py runserver

After running the server, go to http://localhost:8000/webapp/ in your browser, and you should see the text “HEY! Welcome to Edureka!”, which you defined in the index view.

Webapp - Django Tutorial - Edureka

Hurray! We have successfully created a basic Web App.

Is Django worth learning in 2020?

  • Django is definitely worth learning, especially if you don’t have an experience with programming. It’s one of the most popular Python frameworks.
  • As far as the other advantages of Django, the framework offers many essential tools for building a regular app.

If you are into Python Web development, then you certainly might have heard of two frameworks such as Django and Flask. But if you are confused about which one to choose for your web application, then your confusion will surely end after reading this blog on Django Vs Flask. The pointers that I am going to cover here are as follows:

Alright then, let us get started with our first topic.


django-Django Vs Flask-Edureka

Django is a full-stack and a high-level Python-based Web framework. It encourages rapid development and clean and pragmatic design. Django has been built by experienced developers and it elegantly handles much of the hassle of Web development. This is done so that you can focus on writing your app without needing to reinvent the wheel. On top of that it’s free and an open-source framework.


Flask-Django Vs Flask-Edureka

Flask is a lightweight WSGI (Web Server Gateway Interface) web application micro-framework. It has been designed to help you get started quickly and easily with web development. Also, it provides the ability to scale up to complex applications. Initially, it started as a simple wrapper around Werkzeug and Jinja and now it has become one of the most popular Python web application frameworks.

Django Vs Flask

Type of Framework

Django is a type of Full Stack framework whereas Flask falls under the category of Micro framework.


If your application needs SQLitePostgreSQLMySQL, or Oracle, you should prefer using Django. On the other hand, if you’re using NoSQL or no database at all, then Flask is a better choice.

Project Size

Flask is convenient for smaller, less-complicated projects that have well-defined scopes and shorter anticipated lifetimes. Since Django forces a consistent application structure irrespective of the size of the project nearly all Django projects have a similar structure. Thus, Django is better suited for handling larger projects with larger teams that have longer lifetimes and potential for a lot of growth.

Project layout

Django uses a conventional project structure whereas Flask uses arbitrary project structure.

Application Type 

Django is too good at creating full-featured web applications with server-side templating. If you just want a static web site or RESTful web service that feeds your SPA or mobile application, Flask is a preferred choice. Django along with Django REST Framework works well in the latter case too.


Django REST Framework (DRF), one of the most popular third-party Django packages, is a framework used to expose Django models through a RESTful interface. It includes everything you need (views, serializers, validation, auth) and more (browsable API, versioning, caching) for building APIs quickly and easily. Flask has a number of great extensions as well such as Flask-RESTful, Flask-Classful, Flask-RESTPlus for Views, Flask-Marshmallow for Serialization, Flask-JWT, Flask-JWT-Extended for Authentication.


Flask performs slightly better than Django because it has smaller and has fewer layers. The difference is negligible though, especially when you take I/O into account.

Companies using them

Following are the Companies that use Django:

Django Companies - Django Vs Flask - Edureka

Following are the Companies that use Flask:

Flask Companies - Django Vs Flask - Edureka
Parameter DjangoFlask
Type of FrameworkFull StackMicro
DatabaseSQLite, PostgreSQL, MySQLAny database including NoSQL
Project SizeLarger ProjectsSmaller and Less Complicated Projects
Project layoutConventional project structureArbitrary structure
Application Type Full-featured web applications with server-side templatingStatic web application or RESTful web service that feeds your SPA or mobile application
RESTful APIDjango Rest Framework (DRF)Flask-RESTful(views), Flask Marshmallow(Serialization), Flask JWT(Auth)
PerformanceNot better than FlaskBetter than Django
Companies using themInstagramPinterestUdemyCourseraZapierNetflixLyftRedditZillowMailGun


So, which framework should you use? Well to be precise, it depends. The decision to go with a particular framework or language or tool over another depends almost entirely on the context and problem at hand.

Django is full-featured and hence it requires fewer decisions to be made by you or your team. You can probably move faster that way. However, if you are not satisfied with one of the choices that Django makes for you or you have unique application requirements that limit the number of features you can take advantage of, you may have a look at Flask as well.

There’s always going to be tradeoffs and compromises. Finally, both frameworks have lowered the barrier to entry for building web applications, making them much easier and quicker to develop.


0 0 votes
Article Rating
Notify of
Inline Feedbacks
View all comments
Would love your thoughts, please comment.x
error: Alert: Content is protected !!