Django

Django Async & ASGI

ASGI vs WSGI, async views, sync_to_async, async_to_sync, beperkingen van de synchrone ORM, async-prestaties, database connection pooling

26 gespreksvragen·
Senior
1

Wat is het belangrijkste verschil tussen WSGI en ASGI?

Antwoord

ASGI (Asynchronous Server Gateway Interface) breidt WSGI uit met ondersteuning voor asynchrone programmering en persistente verbindingen zoals WebSockets. WSGI is synchroon en kan per worker maar één verzoek tegelijk verwerken, terwijl ASGI dankzij de asyncio-event-loop meerdere verzoeken tegelijk in één proces kan afhandelen.

2

Hoe declareer je een async view in Django?

Antwoord

Een async view in Django wordt eenvoudig gedeclareerd door het sleutelwoord async voor def te plaatsen. Django detecteert automatisch of de view asynchroon is en voert hem uit in de juiste event loop. Deze native Python 3.5+-syntaxis wordt sinds Django 3.1 volledig ondersteund.

3

Wat is de rol van sync_to_async in Django?

Antwoord

sync_to_async is een door asgiref geleverde adapter waarmee synchrone code binnen een asynchrone context kan worden uitgevoerd. Het verpakt een synchrone functie en voert die uit in een aparte thread pool, waardoor blokkeren van de event loop wordt voorkomen. Dit is essentieel om de Django-ORM vanuit een async view aan te roepen, aangezien de ORM synchroon is.

4

Waarom kan de Django-ORM niet rechtstreeks in een async view worden gebruikt?

5

Wat is de rol van async_to_sync in Django?

+23 gespreksvragen

Beheers Django voor je volgende gesprek

Krijg toegang tot alle vragen, flashcards, technische tests, code review-oefeningen en gespreksimulatoren.

Begin gratis