Introduction
Django is an open-source web framework that enables you to build clean and feature-rich web applications with minimal effort needed and in no time. It is written in Python; a general-purpose language; but is well suited for developing Web Applications. Django loosely follows a model-view-controller (MVC) design pattern, which greatly helps in building clean and maintainable web applications. For introduction purposes, you’ll read about the following,
- The MVC pattern in web development.
- Why we should use Python.
- Why we should use Django.
The MVC pattern in web development
Web development was a tedious task involving the use of CGI for interfacing external programs with the webserver. It was not only difficult but also required a separate copy of the program to be launched for each request. Quite overwhelming right?
A few years ago, Model-View-Controller came into the picture for web-based applications. It separates data (model), user interface (view), and data handling logic (controller), so that one can be changed without affecting the other; benefiting the designers and developers to work on the same application without affecting and worrying about each other’s job. SWEET.
Why Python?
Python is a general-purpose programming language. Although it is well suited for a wide variety of applications, it doesn’t leave the web behind. It’s a clean and elegant syntax plus the support of a large library of standard and contributed modules means it technically covers everything from parallel processing to access a file. Also, its object-oriented model makes it suitable for MVC style development.
If you’re like many people (yeah I’m in too) who first started with C and Java, the fact that Python is easy to learn gets you to jump to the conclusion that Python is not that necessary of programming skill. ‘I BEG TO DIFFER’. Python can actually push you to great heights whether it comes to landing a job or getting to taste the hottest trend in tech like Big Data, Machine learning, etc.
The reason I’m falling in love with Python is that it’s hard to mess up. The beauty of Python; besides its simplicity; is its readability, versatility, it's fast to write and there’re no ‘Black Holes’ in its design.
As far as the performance is concerned, the Python runtime environment is one of a kind. It is known to be the fastest and stably supports most of the famous web servers through modules. Python is also available for all major platforms: Windows, Mac, UNIX/Linux.
Why Django?
Probably as soon as the MVC pattern developed its roots into web development, Python provided quite a few choices for the web frames. Django is one of the available frameworks for Python but the question is; what sets it apart from other frameworks and what makes it popular in the Python community?
If you’re a perfectionist but need to meet those deadlines (yeah I hate them too. Nobody likes the deadlines anyway. Right?) Django is the best option for you as everything falls in place and in no time. It was specifically made for people who want clean code and good architecture for their applications. Below are a few more reasons to consider Django.
Integration
Django’s components were meant for integration, reusability, and speed from the start. It started as an in-house framework for managing a series of news-oriented websites but later its code was made public and the Django team contributed its development using the Open Source model. So because of its roots, it provides tight integration between components.
ORM
Django comes with Object-Relational Mapper (ORM) which is more like a connection between the data model and database engine. So even if you’re no master at SQL only the basics would work perfectly fine with it. Also migrating data from one database engine to another is just a matter of changing a configuration file.
URL Design
Django provides its users the convenience and flexibility allowing URL to be mapped using regular expressions. You can also define functions to handle each pattern. That means it works both ways; user as well as search engine friendly.
Administration interface

Join the conversation! Your thoughts help the community grow.