【问题标题】:How to run wsgi along the side of the daphne ASGI for django channels如何在 django 频道的 daphne ASGI 一侧运行 wsgi
【发布时间】: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()

我的问题是:

  1. 如何在我们的普通函数视图请求(如def index(request))中获取 django 请求而不是 ASGI 请求,或者如果我们安装 django 通道,每个请求都成为 ASGI 请求?
  2. python mange.py runworker命令有什么用

【问题讨论】:

    标签: django wsgi django-channels daphne


    【解决方案1】:

    您可以在这里阅读:https://asgi.readthedocs.io/en/latest/

    ASGI(异步服务器网关接口)是精神继承者 到 WSGI,旨在提供一个标准的接口 支持异步的 Python Web 服务器、框架和应用程序。

    WSGI 提供了同步 Python 应用程序的标准,ASGI 为异步和同步应用程序提供一个,带有 WSGI 向后兼容的实现和多个服务器和 应用程序框架。

    所以你的问题 nr 1 的答案是:Yes, all requests will be ASGI

    问题 nr 2 - 这是一个运行多个工作人员以异步方式处理您的频道请求的命令https://channels.readthedocs.io/en/1.x/deploying.html#run-worker-servers

    【讨论】:

    • 对于问题 1,如果答案是肯定的,那么第三方应用程序将如何表现他们期待 django 请求,所以从现在开始,如果我发送 ASGI 请求(或实例)它们会中断吗??
    • 或者如果是,那么 WSGI_APPLICATION 完全是浪费对吧?
    • ASGI 请求具有普通 django 请求所具有的所有属性,所以这不是问题,它应该对您透明。WSGI_APPLICATIONrunserver 命令所必需的stackoverflow.com/a/36107047/2156813
    • 是的老板,即使我在设置文件中注释掉代码 WSGI_APPLICATION 我的应用程序和运行服务器工作正常
    • @pako 你能看到这个吗?我的问题也是类似的stackoverflow.com/questions/59527805/…
    猜你喜欢
    • 2019-10-16
    • 2018-03-21
    • 2021-08-21
    • 1970-01-01
    • 2016-09-17
    • 2021-05-28
    • 2018-12-28
    • 2022-09-30
    • 2020-11-28
    相关资源
    最近更新 更多