首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django + Uvicorn

Django + Uvicorn
EN

Stack Overflow用户
提问于 2020-04-19 14:15:42
回答 2查看 2.1K关注 0票数 8

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

代码语言:javascript
复制
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似乎没有返回任何结果。

EN

回答 2

Stack Overflow用户

发布于 2020-05-04 18:45:19

不,lifespan协议在Django 3.0中不起作用。

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

票数 7
EN

Stack Overflow用户

发布于 2021-04-27 09:34:43

这是我在Django3.1/ 3.2中使用的初始设置

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

旧版本

your_django/old_wsgi.py

代码语言:javascript
复制
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())

以前以以下身份运行:

代码语言:javascript
复制
newrelic-admin run-program gunicorn your_django.old_wsgi \
-k eventlet --log-file - --timeout 60

新版本

your_django/asgi.py

代码语言:javascript
复制
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()
)

并运行

代码语言:javascript
复制
gunicorn your_django.asgi --log-level=debug -k uvicorn.workers.UvicornWorker \
--log-file - --timeout 60

# OR for local dev

uvicorn --reload your_django.asgi

相关信息:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61300314

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档