Django

Django Async & ASGI

ASGI vs WSGI, async views, sync_to_async, async_to_sync, Einschränkungen des synchronen ORM, async-Performance, database connection pooling

26 Interview-Fragen·
Senior
1

Was ist der Hauptunterschied zwischen WSGI und ASGI?

Antwort

ASGI (Asynchronous Server Gateway Interface) erweitert WSGI um die Unterstützung für asynchrone Programmierung und persistente Verbindungen wie WebSockets. WSGI ist synchron und kann pro Worker nur eine Anfrage gleichzeitig verarbeiten, während ASGI dank der asyncio-event-loop mehrere Anfragen gleichzeitig in einem einzigen Prozess verarbeiten kann.

2

Wie deklariert man eine async View in Django?

Antwort

Eine async View in Django wird einfach durch das Schlüsselwort async vor def deklariert. Django erkennt automatisch, ob die View asynchron ist, und führt sie in der passenden event loop aus. Diese native Python-3.5+-Syntax wird seit Django 3.1 vollständig unterstützt.

3

Welche Rolle spielt sync_to_async in Django?

Antwort

sync_to_async ist ein von asgiref bereitgestellter Adapter, mit dem synchroner Code in einem asynchronen Kontext ausgeführt werden kann. Er umschließt eine synchrone Funktion und führt sie in einem separaten Thread-Pool aus, wodurch ein Blockieren der event loop verhindert wird. Das ist unerlässlich, um das Django-ORM aus einer async View aufzurufen, da das ORM synchron ist.

4

Warum kann das Django-ORM nicht direkt in einer async View verwendet werden?

5

Welche Rolle spielt async_to_sync in Django?

+23 Interview-Fragen

Meistere Django für dein nächstes Interview

Zugang zu allen Fragen, Flashcards, technischen Tests, Code-Review-Übungen und Interview-Simulatoren.

Kostenlos starten