我刚开始学习Django中的通道和ASGI,我看了一些教程,发现他们这样配置ASGI应用程序:
asgi.py
但是我的仍在使用默认设置。
当我使用Daphne并将其放置在已安装的应用程序中而不是通道时。
asgi.py
import os
from django.core.asgi import get_asgi_application
from channels.routing import ProtocolTypeRouter, URLRouter
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mywebsite.settings')
application = ProtocolTypeRouter({
'http':get_asgi_application(),
})
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/Channel服务器上运行的,就像这样:
Starting ASGI/Channels version development server at http://127.0.0.1:8000/
但是我的仍在使用默认设置。
Starting development server at http://127.0.0.1:8000/
当我使用Daphne并将其放置在已安装的应用程序中而不是通道时。
'daphne',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'chat'
]
它运行良好
Starting ASGI/Daphne version 4.0.0 development server at http://127.0.0.1:8000/
有人能告诉我这里发生了什么?Django 如何与 ASGI 协同工作?