Установка

Channels доступны на PyPI - чтобы установить, просто запустите:

python -m pip install -U channels

Как только это будет сделано, вы должны добавить channels в настройку INSTALLED_APPS:

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    ...
    'channels',
)

Затем настройте файл asgi.py вашего проекта, например myproject/asgi.py, чтобы обернуть приложение Django ASGI:

import os

from channels.routing import ProtocolTypeRouter
from django.core.asgi import get_asgi_application

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings')

application = ProtocolTypeRouter({
    "http": get_asgi_application(),
    # Just HTTP for now. (We can add other protocols later.)
})

Примечание

Django 2.2 не имеет встроенной поддержки ASGI, поэтому нам нужно использовать альтернативный вариант Channel. Создайте myproject/asgi.py следующим образом:

import os

import django
from channels.http import AsgiHandler
from channels.routing import ProtocolTypeRouter

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings')
django.setup()

application = ProtocolTypeRouter({
  "http": AsgiHandler(),
  # Just HTTP for now. (We can add other protocols later.)
})

И, наконец, установите параметр ASGI_APPLICATION, чтобы он указывал на этот объект маршрутизации в качестве корневого приложения:

ASGI_APPLICATION = "myproject.asgi.application"

Это все! После включения channels интегрируется в Django и получает контроль над командой runserver. Смотрите Вступление для дополнительных сведений.

Примечание

Будьте осторожны с любыми другими сторонними приложениями, которые требуют перегруженной или заменяющей команды runserver. Channels предоставляет отдельную команду runserver и может конфликтовать с ней. Примером такого конфликта является whitenoise.runserver_nostatic из whitenoise. Чтобы решить такие проблемы, попробуйте переместить channels в начало вашего INSTALLED_APPS или полностью удалить приложение-нарушитель.

Установка последней версии разработки

Чтобы установить последнюю версию Channels, клонируйте репозиторий, перейдите в него и установите его в текущую виртуальную среду:

$ git clone git@github.com:django/channels.git
$ cd channels
$ <activate your project’s virtual environment>
(environment) $ pip install -e .  # the dot specifies the current repo
Вернуться на верх