我在YouTube上观看了Dennis Ivy的教程:Django通道和WebSockets过于简化
我想在Django中使用websockets创建一个简单的网站。我使用Python 3.7.0
当我使用python manage.py runserver
时,它输出以下Starting development server at http://127.0.0.1:8000/
,但是,它应该输出以下Starting ASGI/Channels version 3.0.0 development server at http://127.0.0.1:8000/
这是我的settings.py文件
INSTALLED_APPS = [
'channels',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'chat',
]
ASGI_APPLICATION = 'myWebsite.asgi.application'
asgi.py
import os
from django.core.asgi import get_asgi_application
from channels.routing import ProtocolTypeRouter
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myWebsite.settings')
application = ProtocolTypeRouter({
'http':get_asgi_application()
})
1条答案
按热度按时间sczxawaw1#
你在Django中遇到的ASGI无法启动的问题经常出现在较新版本的Channels中。要解决此问题,必须通过执行以下命令安装Daphne:
pip install daphne
。安装Daphne后,使用以下命令继续更新具有Daphne支持的通道:python -m pip install -U channels["daphne"]
。此外,在Django的www.example.com文件的
INSTALLED_APPS
列表的顶部添加'daphne'是至关重要settings.py的。这可以确保Django在启动ASGI服务器时识别并优先考虑Daphne。通过以下步骤,您应该能够解决问题并使用Django成功启动ASGI。祝你好运!