django:redis:CommandError: 您尚未设置运行服务器所需的 ASGI_APPLICATION

问题描述 投票:0回答:2

我正在尝试在 django 中创建套接字。我按照这个link安装了asgi_redis。 当我运行命令 python manage.py runserver 时,出现以下错误。

>python manage.py runserver
CommandError: You have not set ASGI_APPLICATION, which is needed to run the server.

由于我还没有启动redis,所以上面的错误可能是因为这个。我有点困惑,我需要单独安装Redis还是只需要启动redis,因为我已经安装了asgi_redis?

redis 的project/settings.py 文件条目。

CHANNEL_LAYERS = {
    'default': {
        'BACKEND': 'asgi_redis.RedisChannelLayer',
        'CONFIG': {
            'hosts': [('localhost', 6379)],
        },
        'ROUTING': 'example_channels.routing.channel_routing',
    }
}
python django redis
2个回答
17
投票

您应该为您的 WebSocket 服务器编写路由配置。在

mysite/routing.py
文件的同一文件夹中创建文件
settings.py
,并包含以下代码:

# mysite/routing.py
from channels.routing import ProtocolTypeRouter

application = ProtocolTypeRouter({
    # (your routes here)
})

您也可能忘记将 Channels 指向根路由配置。编辑 mysite/settings.py 文件并将以下内容添加到其底部:

ASGI_APPLICATION = 'mysite.routing.application'

0
投票

您必须在 settings.py 文件中添加此代码,将“ChatApp”的名称更改为应用程序的实际名称,并将此代码添加到 settings.py 文件中的 INSTALLED_APPS 代码下方

ASGI_APPLICATION = 'ChatApp.asgi.application'

现在单击新终端,然后转到

cd ./ChatApp
然后
py manage.py runserver
你会看到你的服务器正在运行

© www.soinside.com 2019 - 2024. All rights reserved.