Django использует
sqlparse
и asgiref
как вспомогательные библиотеки для работы с SQL и асинхронностью. Разберём их назначение подробно. sqlparse
(SQL Parser) — это библиотека для анализа, форматирования и обработки SQL-запросов. В Django она используется в админке, логах и отладке ORM. Форматирование SQL-запросов в
django.db.connection.queries
from django.db import connection
from sqlparse import format
queries = connection.queries # Получаем список SQL-запросов
for q in queries:
print(format(q["sql"], reindent=True, keyword_case="upper")) # Красивый SQL
Логирование SQL-запросов
sqlparse
помогает Django красиво выводить SQL-запросы в DEBUG=True
.Команда
sqlmigrate
python manage.py sqlmigrate app_name 0001
asgiref
(Asynchronous Server Gateway Interface Reference) — это библиотека, которая помогает Django работать в асинхронном (async) режиме. Django поддерживает ASGI с версии 3.0, и asgiref
— это её обязательная зависимость.Django с версии 3.0 поддерживает асинхронные вьюхи, WebSockets и асинхронные базы данных (например, с
asyncpg
).В
settings.py
есть параметр:ASGI_APPLICATION = "myproject.asgi.application"
Django 4.x поддерживает асинхронные middleware через
asgiref.sync
и asgiref.local
.Django использует
sync_to_async()
и async_to_sync()
из asgiref
:from asgiref.sync import sync_to_async
def sync_function():
return "Hello from sync!"
async_function = sync_to_async(sync_function)
print(async_function()) # Вызывает синхронную функцию в асинхронном коде
Позволяет хранить данные отдельно для каждого потока или запроса.
Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Функция zip объединяет несколько итерируемых объектов в кортежи, идущие параллельно. Это удобно, когда нужно обрабатывать пары элементов — например, имена и их оценки, ключи и значения, столбцы из разных таблиц.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4