Django

Django Async & ASGI

ASGI vs WSGI, async views, sync_to_async, async_to_sync, limites ORM sync, performance async, database connection pooling

26 questions d'entretien·
Senior
1

Quelle est la principale différence entre WSGI et ASGI ?

Réponse

ASGI (Asynchronous Server Gateway Interface) étend WSGI en ajoutant le support de la programmation asynchrone et des connexions persistantes comme les WebSockets. WSGI est synchrone et ne peut gérer qu'une requête à la fois par worker, tandis qu'ASGI permet de gérer plusieurs requêtes simultanément dans un seul processus grâce à l'event loop asyncio.

2

Comment déclarer une vue asynchrone en Django ?

Réponse

Une vue asynchrone en Django se déclare simplement en utilisant le mot-clé async devant def. Django détecte automatiquement si la vue est asynchrone et l'exécute dans l'event loop approprié. Cette syntaxe native de Python 3.5+ est pleinement supportée depuis Django 3.1.

3

Quel est le rôle de sync_to_async dans Django ?

Réponse

sync_to_async est un adaptateur fourni par asgiref qui permet d'exécuter du code synchrone dans un contexte asynchrone. Il enveloppe une fonction synchrone et l'exécute dans un thread pool séparé, évitant ainsi de bloquer l'event loop. C'est essentiel pour appeler l'ORM Django depuis une vue async car l'ORM est synchrone.

4

Pourquoi l'ORM Django ne peut-il pas être utilisé directement dans une vue asynchrone ?

5

Quel est le rôle de async_to_sync dans Django ?

+23 questions d'entretien

Maîtrise Django pour ton prochain entretien

Accède à toutes les questions, flashcards, tests techniques, exercices de code review et simulateurs d'entretien.

Commencer gratuitement