Django is a Python web development framework.



Django is a rich programming framework suitable for developing complex websites and web applications, written in the Python programming language. For Django development, you can refer here https://www.softformance.com/technologies/django-development/



Django is a Python web application framework. One of the basic principles of the framework is DRY (don't repeat yourself). Django web systems are built from one or more applications, which are recommended to be alienable and pluggable. This is one of the notable architectural differences of this framework from some others (like Ruby on Rails). Also, unlike many other frameworks, Django's URL handlers are explicitly configured (using regular expressions) rather than automatically set from the controller structure.



Django was designed to run under Apache (with the mod_python module) and using PostgreSQL as the database. Currently, in addition to PostgreSQL, Django can work with other DBMS: MySQL (MariaDB), SQLite, Microsoft SQL Server, DB2, Firebird, SQL Anywhere and Oracle. To work with the database, Django uses its own ORM, in which the data model is described by Python classes, and the database schema is generated from it.



Django's architecture is similar to Model-View-Controller (MVC). The classic MVC controller roughly corresponds to what Django calls the View layer, and the presentational logic of the View is implemented in Django by the Templates layer. Because of this, Django's layered architecture is often referred to as "Model-Template-View" (MTV).



Initially, the development of Django was carried out to provide more convenient work with news resources, which had a strong impact on the architecture: the framework provides a number of tools that help in the rapid development of informational websites. For example, a developer does not need to create controllers and pages for the site's backend, Django has a built-in content management application that can be included in any Django site and can manage multiple sites at once on the same server. The administrative application allows you to create, modify and delete any site content objects, logging all actions taken, and provides an interface for managing users and groups (with object-by-object assignment of rights).



The Django web framework is used in such large and well-known sites as Instagram, Disqus, Mozilla, The Washington Times, Pinterest, lamoda, etc.



Some components of the framework are loosely related to each other, so they can be easily replaced with similar ones. But with some (for example, with ORM), this is not very easy to do. In addition to the features built into the core of the framework, there are packages that extend its capabilities.



Quite a lot of ready-made solutions distributed under a free license have been developed on the basis of Django, including systems for managing online stores, universal content management systems, as well as more narrowly focused projects.