A Django project is a collection of web-applications that coordinate together to serve the request of the user.
These applications have one assigned feature and shall do only that.
A typical Django project consists of these four files:
* manage.py
* settings.py
* __init__.py
* urls.py
* wsgi.py
The last four files are inside a directory, which is at the same level of manage.py.
Here the structure is very logical, and the names of these files and their purpose should remain intact.
manage.py is the command-line utility of your Django project and this file is used to control your Django project on the server or even to begin one.
When Django server is started, the manage.py file searches for settings.py file, which contains information of all the applications installed in the project, middleware used, database connections and path to the main urls config.
The urls.py file is like a map of your whole web-project, this file examines URL and calls the right view function or transports the URL to another application-specific urls-config file.
This is like the main URL linker and any app installed in the settings.py which you wish to be searched by the URL should have a link here.
The __init__.py file is an empty file which is there to make the python interpreter understand that the directory consisting settings.py is a module/ package.
The wsgi.py file is for the server format WSGI, which Django supports natively. We can customize that for other server formats.