8

我正在尝试将 Django 3.0 与 Uvicorn 一起使用并开始使用:

INFO:     Started server process [96219]
INFO:     Waiting for application startup.
INFO:     ASGI 'lifespan' protocol appears unsupported.
INFO:     Application startup complete.

我可以用标志关闭寿命--lifespan off,但有没有办法让它与 Django 一起工作?快速搜索 Django + lifespan 似乎没有返回任何内容。

4

2 回答 2

7

不,lifespan协议不适用于 Django 3.0。

看到这张票:https ://code.djangoproject.com/ticket/31508

于 2020-05-04T10:45:19.047 回答
0

这是我在 django 3.1 / 3.2 中使用的初始设置

编辑:一些粗略的性能基准:https ://github.com/allen-munsch/benchmark-django-fastapi

旧版

your_django/old_wsgi.py

import os

from django.core.wsgi import get_wsgi_application
from dj_static import Cling

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "your_django.settings")

application = Cling(get_wsgi_application())

以前运行为:

newrelic-admin run-program gunicorn your_django.old_wsgi \
-k eventlet --log-file - --timeout 60

新版本

your_django/asgi.py

import os

from django.core.asgi import get_asgi_application
from django.contrib.staticfiles.handlers import ASGIStaticFilesHandler

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "pm.settings")

application = ASGIStaticFilesHandler(
    get_asgi_application()
)

并运行

gunicorn your_django.asgi --log-level=debug -k uvicorn.workers.UvicornWorker \
--log-file - --timeout 60

# OR for local dev

uvicorn --reload your_django.asgi

有关的:

于 2021-04-27T01:34:43.380 回答