From dd0c8e39caa5d8da68c92ae032f8e134dee03680 Mon Sep 17 00:00:00 2001 From: ErdemOzgen Date: Fri, 22 Dec 2023 11:09:52 +0300 Subject: [PATCH] Refactor variable names for clarity --- content/ProgramingLang/Django.md | 50 ++++++++++++++++++ .../Screenshot from 2023-12-22 10-49-33.png | Bin 0 -> 35484 bytes 2 files changed, 50 insertions(+) create mode 100644 content/ProgramingLang/Django.md create mode 100644 content/imgs/Screenshot from 2023-12-22 10-49-33.png diff --git a/content/ProgramingLang/Django.md b/content/ProgramingLang/Django.md new file mode 100644 index 000000000..8f635dd6e --- /dev/null +++ b/content/ProgramingLang/Django.md @@ -0,0 +1,50 @@ +--- +tags: + - asgi + - django + - web + - python +--- +```bash +conda create -n django python=3.10 +conda activate django +pip install Django +``` +# ASGI + +Asynchronous Server Gateway Interface (ASGI) is a specification for Python web servers and applications. It serves as an evolution of the traditional WSGI (Web Server Gateway Interface), which has been the standard for Python web applications. The key features and purpose of ASGI are: + +1. **Asynchronous Support**: ASGI provides a standard for handling asynchronous requests in Python. This is particularly important for enabling web applications to handle long-lived connections, such as those needed for WebSockets, HTTP/2, and other protocols. + +2. **Compatibility with WSGI**: ASGI is designed to be backward compatible with WSGI. This means that applications and frameworks written for WSGI can be adapted to use ASGI with minimal changes. + +3. **Scalability**: By supporting asynchronous programming, ASGI allows for more scalable web applications. Asynchronous applications can handle a larger number of simultaneous connections with fewer resources, as they don't block the server while waiting for I/O operations. + +4. **Flexibility**: ASGI separates the concerns of web application and server, allowing for more flexibility in choosing or developing both. Different ASGI servers can be used with different ASGI applications. + +5. **Layered Architecture**: ASGI defines a layered architecture with different components handling specific types of events (HTTP, WebSocket, lifespan). This modularity allows for more maintainable and extensible applications. + +6. **Community Adoption**: ASGI has gained significant traction within the Python community, with web frameworks like Django and Starlette providing support for ASGI. + +Overall, ASGI represents a modern approach to building Python web applications, enabling more efficient handling of asynchronous operations and better scalability. It's particularly useful for applications that require handling real-time data or maintaining persistent connections with clients. + + +Django components are loosely coupled, which means they can be managed independently. This helps separate the responsibilities of the different layers of the framework; the database layer knows nothing about how the data is displayed, the template system knows nothing about web requests, and so on. + + +# Main framework components + +Django follows the MTV (Model-Template-View) pattern. It is a slightly similar pattern to the wellknown MVC (Model-View-Controller) pattern, where the Template acts as View and the framework itself acts as the Controller. +The responsibilities in the Django MTV pattern are divided as follows: + +• Model – Defines the logical data structure and is the data handler between the database and the View. + +• Template – Is the presentation layer. Django uses a plain-text template system that keeps everything that the browser renders. + +• View – Communicates with the database via the Model and transfers the data to the Template for viewing. + +The framework itself acts as the Controller. It sends a request to the appropriate view, according to the Django URL configuration. + +![[Screenshot from 2023-12-22 10-49-33.png]] + + diff --git a/content/imgs/Screenshot from 2023-12-22 10-49-33.png b/content/imgs/Screenshot from 2023-12-22 10-49-33.png new file mode 100644 index 0000000000000000000000000000000000000000..3627d8625f2e34e85926c0e5eba667c64cd76df3 GIT binary patch literal 35484 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 E1zZ=hIsgCw literal 0 HcmV?d00001