Встречается на 1% собеседований по Python
Как реализовать асинхронность в Django
Для асинхронности в Django (3.1+) можно использовать ASGI вместо WSGI и async views. Основные подходы:
- ASGI-приложение:
python
# asgi.py
from django.core.asgi import get_asgi_application
application = get_asgi_application()- Async views:
python
from django.http import JsonResponse
from asgiref.sync import sync_to_async
async def my_view(request):
data = await sync_to_async(SomeModel.objects.filter)(...)
return JsonResponse({'data': list(data)})
text
3. Для работы с БД используйте `sync_to_async` или ORM-обертки типа `database_sync_to_async`. ORM Django пока не полностью асинхронна.
Важно:
- Не все middleware поддерживают async
- Тестирование требует async-клиента
- Лучше смешивать sync/async код постепенно
- Для production нужен ASGI-сервер (Daphne, Uvicorn)
Пример async/await с внешними API:
```python
async def fetch_data():
async with aiohttp.ClientSession() as session:
async with session.get('https://api.example.com') as resp:
return await resp.json()
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
Похожие вопросы
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы