websocket ASGI在Django中不启动

flvlnr44  于 2023-05-29  发布在  Go
关注(0)|答案(1)|浏览(472)

我在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()
})
sczxawaw

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。祝你好运!

相关问题