英文:
ASGI does not start in Django
问题
I am following the tutorial by Dennis Ivy on YouTube: Django Channels & WebSockets Oversimplified
I want to make a simple website using websockets in Django. I am using Python 3.7.0
When I use the python manage.py runserver
it outputs the following Starting development server at http://127.0.0.1:8000/
It should, however, output the following Starting ASGI/Channels version 3.0.0 development server at http://127.0.0.1:8000/
This is my settings.py file
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'
The 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()
})
英文:
I am following the tutorial by Dennis Ivy on YouTube: Django Channels & WebSockets Oversimplified
I want to make a simple website using websockets in Django. I am using Python 3.7.0
When I use the python manage.py runserver
it outputs the following Starting development server at http://127.0.0.1:8000/
It should, however, output the following Starting ASGI/Channels version 3.0.0 development server at http://127.0.0.1:8000/
This is my settings.py file
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'
The 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
得分: 1
ASGI 在 Django 中无法启动的问题通常在较新版本的 Channels 中经常发生。要解决此问题,您必须执行以下命令安装 Daphne:pip install daphne
。安装完 Daphne 后,继续使用以下命令更新支持 Daphne 的 Channels:python -m pip install -U channels[“daphne”]
。
此外,非常重要的是将 'daphne' 添加到 Django 的 settings.py 文件中的 'INSTALLED_APPS' 列表顶部。这样可以确保 Django 在启动 ASGI 服务器时识别并优先使用 Daphne。
通过按照这些步骤操作,您应该能够成功解决问题,并且能够在 Django 中成功启动 ASGI。祝好运!
英文:
The problem you're facing with ASGI not starting in Django often occurs in newer versions of Channels. To resolve this issue, you must install Daphne by executing the following command: pip install daphne
. Once Daphne is installed, proceed to update Channels with Daphne support using the following command: python -m pip install -U channels["daphne"]
.
Moreover, it is crucial to add 'daphne' at the top of the INSTALLED_APPS
list in your Django's settings.py file. This ensures that Django recognizes and prioritizes Daphne when starting ASGI servers.
By following these steps, you should be able to resolve the issue and start ASGI successfully with Django. Good luck!
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论