What is Django?


Django Thumbnail

It is web framework based on Python programming language. Normally it is widely known as backend framework, but it can deal with frontend layer with providing templates separately, which is an awesome boy. There used to be a skeptical point of view (opens in a new tab) that Python is NOT appropriate for web development, but ever since Django came out of this world, people started to think differently.

Let us view what are advantages (opens in a new tab) that Django documentation is mentioning.

Astonishingly quick development speed

One of the biggest advantages that Django feels proud of itself is quick development speed, which is the reason why I like most too. We can tell it from the history of Django (opens in a new tab), where web programmers made Django for meeting deadlines of their tasks while working newspaper company in the year of 2003.

Django has many different modules as lego blocks that implements a variety of features (such as authentication, admin page, forms, i18n, etc), so whenever you are feel get used to using those tools, you can build up your application very quickly.


Django provides the basic tools for enhancing web security (opens in a new tab) (e.g. XSS, CSRF, etc). Therefore, frontend/backend developers do not need to be sick and tired of thinking too much of security.


Django literally has very good position of scaling up (opens in a new tab). As Django is using "shared-nothing" architecture and split all resources into apart except networks (i.e. it does not share anything), it allows us to add up whatever hardwares we would like to add with ease.


Then what are some featuers that Django has?


Django supports ORM. ORM(Object-Relational Mapping) (opens in a new tab) in this case means converting data between type systems with using object-oriented programming language. That is, it allows us to interact database (opens in a new tab) even though we do not need to know how to build up SQL queries. Hooray! I don't need to learn SQL!!🤭

Design Pattern

Design Pattern (opens in a new tab) indicates rule or project structure that can effectively makes us produce code which can solve many different problems on software design.

MVT Pattern

MVT pattern stands for Model View Template.

  1. Model: Manages database.
  2. View: With interacting Model and Template, it manages the sending/receiving HTTP request/response, respectiveyl.
  3. Template: Major frontend layer of Django application to show HTTP responses.

Design pattern
Reference: Fahadul Shadhin (Medium Blog)