Установка¶
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