Python Django Introduction
Django is a free, open-source, and high-level Python web framework that is used for developing maintainable and secure websites. With the help of Django, it becomes easier to build better web applications very quickly and with less code. Django framework provides a structure to the project which is scalable and more distributed in which we specify the models(tables for DB) in a different directory/file, URLs for webpages in a separate file, etc.
Also, Django comes loaded with an Admin panel which can be used to access, create and update data in database tables directly using the Admin panel, which is a very useful feature for a big application.
You must be thinking if it is just about packaging and structuring, then we can do it ourselves too, why use a framework for that? Well, you are right, you can do it yourself too, ut a web framework like Django, brings in a set of components that are used to provide a standard way to develop websites fast and easily along with some major foundation features already available, ready to use, like authentication, managing models(DB tables), handling HTTP request and response, etc.
In this tutorial, we will discuss the basic introduction to Django, mentioning its features, and listing down Django versions. So let's get started with learning the Django framework.

Pre-requisites for Django
Before learning the Django framework, one must have complete knowledge of Python programming language and OOPs. For learning Python, you can check our tutorial: Complete Python tutorial
Introduction to Django
Django provides us a high-level web framework for rapid web development.
-
Django Framework is based on the MVT (Model / View / Template) design pattern.
-
Django comes with an elegant system for mapping the URLs to python code to make webpages.
-
Django contains generic views in order to handle HTTP requests.
-
Works with almost every Database technology. The primary goal of Django is the creation of complex database-driven websites(because it is very easy to switch databases in the Django framework).
-
Django contains production-ready Admin interfaces that are generated dynamically.
-
This framework is fully functional and it does not require anything else. In simple words, it is a standalone framework with no dependency.
-
Django provides various readymade components for caching, user authentication, and form handling, etc. which are highly scalable too.
- Django framework also provides a lightweight and standalone web server for development and testing
-
Basically, it is a complete stack of tools required for web development.
-
Also, the Django framework is designed in such a manner that it mainly handles most of the configurations automatically, so that developer can focus on writing functional code.
-
With the help of this framework, Web applications can be build in very little time.
-
This framework provides an interface to Python's built-in unit test framework too for adding unit test cases for your application.
Let us now jump on to the history of Django.
History of Django - Where did Django come from?
Django was designed and developed by Lawrence journal world in 2003 by a web team and they were responsible for creating and maintaining newspaper websites. After creating a number of sites using it internally, the team converted it into a framework which we today know as Django. From starting Django was kept free and open-source and it was publicly released under the BSD license in July 2005.
At current times, DSF (Django Software Foundation) is maintaining the development and release cycle of Django. Django was released on 21, July 2005. From then Django has continued to grow and improve, from its first milestone release (1.0) in September 2008 to version 2.0 (2017), it is still growing in 2020. Its stable version released on December 2, 2019, was 3.0 version.
Complete Version history:
Below we have a table that contains the complete version history of the Django framework:
Version |
Date |
Description of the version |
0.90 |
16 Nov 2005 |
|
0.91 |
11 Jan 2006 |
new-admin |
0.95 |
29 Jul 2006 |
magic removal |
0.96 |
23 Mar 2007 |
newforms, testing tools |
1.0 |
3 Sep 2008 |
API stability, decoupled admin, Unicode |
1.1 |
29 Jul 2009 |
Aggregates, transaction-based tests |
1.2 |
17 May 2010 |
Multiple DB connections, CSRF, model validation |
1.3 |
23 Mar 2011 |
Class-based views, static files |
1.4 LTS |
23 Mar 2012 |
Time zones, in-browser testing, app templates. |
1.5 |
26 Feb 2013 |
Python 3 Support, the configurable user model |
1.6 |
6 Nov 2013 |
Dedicated to Malcolm Tredinnick, DB transaction management, connection pooling. |
1.7 |
2 Sep 2014 |
Migrations, application loading, and configuration. |
1.8 LTS |
1 Apr 2015 |
Native support for multiple template engines. The Support ended on 1 April 2018 |
1.9 |
1 Dec 2015 |
Automatic password validation. New styling for the admin interface. |
1.10 |
1 Aug 2016 |
Full-text search for PostgreSQL. New-style middleware. |
1.11 LTS |
4 Apr 2017 |
Last version to support Python 2.7. The Support ended on 1 April 2020 |
2.0 |
2 Dec 2017 |
First Python 3-only release, Simplified URL routing syntax, Mobile friendly admin. |
2.1 |
1 Aug 2018 |
Model "view" permission. |
2.2 LTS |
1 Apr 2019 |
Security release. Supported until at least April 2022 |
3.0 |
2 Dec 2019 |
ASGI support |
3.1 |
4 Aug 2020 |
Asynchronous views and middleware (This is the latest version) |
3.2 LTS |
Apr 2021 |
Extended Support until April 2024(This is a future release) |
In the above table, the version 2.1 and all versions before that are older versions of Django. Version 2.2 LTS and version 3.0 are older and still maintained versions of Django.
Summary
In this tutorial, we covered the basic introduction to Django Framework, we also covered the history that is from where did it came into existence, and then we covered the complete version history of Django Framework. In the next tutorial, we will cover the Advantages of Django, the design philosophy of Django, and the popularity of Django, along with a few usecases where Django should be used.