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

Помогает ли Django реализовать WebSocket на фронтенде

Django сам по себе не поддерживает WebSocket, но можно использовать дополнительные библиотеки. Для работы с WebSocket в Django чаще всего используют Django Channels — это расширение, которое добавляет поддержку асинхронных соединений.

Пример простого WebSocket-сервера на Django Channels:

python
# consumers.py
from channels.generic.websocket import AsyncWebsocketConsumer

class ChatConsumer(AsyncWebsocketConsumer):
async def connect(self):
await self.accept()

text
async def disconnect(self, close_code):
    pass

async def receive(self, text_data):
    await self.send(text_data="Echo: " + text_data)
text

На фронтенде можно подключиться через стандартный `WebSocket` API в JavaScript:

```javascript
const socket = new WebSocket('ws://localhost:8000/ws/chat/');
socket.onmessage = function(e) {
    console.log('Message:', e.data);
};
socket.send('Hello!');

Для работы требуется:

  1. Установить channels (pip install channels)
  2. Настроить ASGI вместо WSGI
  3. Прописать маршруты в routing.py

Без Channels Django работает только с HTTP, но не с WebSocket.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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