
Django Channels
WebSockets, ASGI, consumers, routing, channel layers, authentication, real-time features
1What is Django Channels?
What is Django Channels?
回答
Django Channels is an extension that adds support for asynchronous protocols to Django, enabling WebSockets, HTTP2, and other non-HTTP protocols. It extends Django's synchronous request-response model by using ASGI (Asynchronous Server Gateway Interface) instead of WSGI, enabling real-time features like chat or push notifications.
2What is the main difference between WSGI and ASGI?
What is the main difference between WSGI and ASGI?
回答
WSGI (Web Server Gateway Interface) is synchronous and handles only one request at a time per worker, while ASGI (Asynchronous Server Gateway Interface) supports asynchronous operations and persistent connections like WebSockets. ASGI can handle multiple simultaneous connections without blocking, which is essential for real-time applications.
3What is a Consumer in Django Channels?
What is a Consumer in Django Channels?
回答
A Consumer is the Django Channels equivalent of a Django view for asynchronous connections. It handles the complete lifecycle of a WebSocket connection: connection, message reception, response sending, and disconnection. Consumers can be synchronous (WebsocketConsumer) or asynchronous (AsyncWebsocketConsumer) and allow structuring business logic for each connection type.
Which Consumer method is called when a WebSocket connection is established?
What is the scope in Django Channels?
+21 面接問題