A framework is a set of components that help you develop websites quickly and easily.


Each time you develop websites, you need similar components: the way to authenticate users (logging on, logging out, logging in), the site control panel, forms, tools for downloading files, and so on.
Luckily for us, other people paid attention to the appearance of the same type of problems in web development, so they teamed up and created frameworks (Django and others) that offer us ready templates for use.
Frameworks exist to facilitate the development process and allow us "not to reinvent the wheel".



Why do we need a framework?


To understand why we need Django, we need to get to know the servers. First, the server should know that we are waiting for a web page from it.
Imagine a mailbox (port) that is checked for new messages (requests). It makes the web server. When the message arrives, the server reads it and sends a response with the web page. However, in order to send something, we need to have something. And Django is responsible for creating the content, which will be sent in response.