【发布时间】:2020-01-08 02:13:09
【问题描述】:
我正在使用官方 django channels v2 在我的项目中使用 django 频道,如果运行 python manage.py runserver,我的简单频道应用程序已完成并且工作正常
但
我想在不同的端口运行 django 频道,所以我现在使用 daphne
使用 daphne my_project.asgi:application --port 8001 它在 8001 端口工作正常
INFO Starting server at tcp:port=8001:interface=127.0.0.1
INFO HTTP/2 support not enabled (install the http2 and tls Twisted extras)
我还在另一个终端并行运行python manage.py runserver,工作正常。现在我8001 中的两个频道和8000 端口中的django 都可以正常工作,但是我的runserver 命令运行的是ASGI/Channels 而不是wsgi 开发服务器,
Starting ASGI/Channels version 2.2.0 development server at http://127.0.0.1:8000/
而不是
Starting development server at http://127.0.0.1:8000/
settings.py
ASGI_APPLICATION = 'my_project.routing.application'
WSGI_APPLICATION = 'my_project.wsgi.application'
如果我在 views.py 请求中调试任何函数,它是 ASGI 请求而不是 django wsgi 请求
asgi.py
import os
import django
from channels.routing import get_default_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "my_project.settings")
django.setup()
application = get_default_application()
我的问题是:
- 如何在我们的普通函数视图请求(如
def index(request))中获取 django 请求而不是 ASGI 请求,或者如果我们安装 django 通道,每个请求都成为 ASGI 请求? - python mange.py runworker命令有什么用
【问题讨论】:
标签: django wsgi django-channels daphne