Встречается на собеседованиях • сегодня

Являются ли функции представления асинхронными в Django

Нет, по умолчанию функции-представления (view functions) в Django синхронные. Однако Django поддерживает асинхронные представления с версии 3.1. Для создания асинхронного представления нужно:

  1. Объявить функцию с async def
  2. Использовать асинхронные ORM-запросы (требуется Django 4.1+ для полной поддержки)

Пример синхронного и асинхронного представлений:

python
# Синхронное
def sync_view(request):
    items = Item.objects.all()  # Блокирующий запрос
    return render(request, 'items.html', {'items': items})

# Асинхронное
async def async_view(request):
    items = await Item.objects.all()  # Неблокирующий запрос
    return render(request, 'items.html', {'items': items})

Важные нюансы:

  • Асинхронные представления работают только с ASGI-сервером (не WSGI)
  • Мидлвары должны поддерживать async/await
  • Некоторые части Django (например, кэширование) могут работать не полностью асинхронно
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы