Django is based on MVT (Model-View-Template) architecture. MVT is a software design pattern for developing a web application.
MVT Structure has the following three parts –
Model: Model is going to act as the interface of your data. It is responsible for maintaining data. It is the logical data structure behind the entire application and is represented by a database (generally relational databases such as MySql, Postgres).
Template: A template consists of static parts of the desired HTML output as well as some special syntax describing how dynamic content will be inserted.
Project Structure :
A Django Project when initialised contains basic files by default such as manage.py, view.py, etc. A simple project structure is enough to create a single page application. Here are the major files and there explanations. Inside the geeks_site folder ( project folder ) there will be following files-
manage.py-This file is used to interact with your project via the command line(start the server, sync the database… etc). For getting the full list of command that can be executed by manage.py type this code in the command window-
$ python manage.py help
folder ( geeks_site ) – This folder contains all the packages of your project. Initially it contains four files –
- _init_.py – It is python package.
- settings.py – As the name indicates it contains all the website settings. In this file we register any applications we create, the location of our static files, database configuration details, etc.
- urls.py – In this file we store all links of the project and functions to call.
- wsgi.py – This file is used in deploying the project in WSGI. It is used to help your Django application communicate with the web server.
Benefits of Django Architecture –
- Rapid Development
- Loosely Coupled
- Ease of Modification
Drawbacks of MVC Architecture –
- Too much load on Model Component
- Development Complexity is high
- Two components are controlling View
- How to Create a Basic Project using MVT in Django ?
- Django Introduction | Set 2 (Creating a Project)
- Django Templates | Set - 2
- How to Create an App in Django ?
- Django Templates | Set - 1
- Django Models | Set - 1
- Django Models | Set - 2
- BinaryField - Django Models
- EmailField - Django Models
- FileField - Django Models
- DurationField - Django Models
- BigIntegerField - Django Models
- AutoField - Django Models
- DateField - Django Models
- BooleanField - Django Models
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.