uwsgi作为django管理命令
django-pyuwsgi的Python项目详细描述
Django Pyuwsgi
作为django管理命令运行pyuwsgi(aka uwsgi)。
用法
安装:
pip install django-pyuwsgi
添加到
INSTALLED_APPS
:INSTALLED_APPS=[# ..."django_pyuwsgi",# ...]
运行:
manage.py pyuwsgi --socket=:8000 ...
配置
pyuwsgi已经知道要在django管理命令环境中使用的python解释器和virtualenv(如果适用)。默认情况下,它将使用以下标志运行(使用settings.WSGI_APPLICATION
确定模块):
--strict --need-app --module={derived}
如果您使用本地url定义了STATIC_URL
,那么它还将添加--static-map
,派生自STATIC_URL
和STATIC_ROOT
。
您可以从命令行传递uwsgi接受的任何其他参数。
但是uwsgi有很多标志,其中很多,你想每次你运行项目。对于这种情况,可以使用可选设置PYUWSGI_ARGS
配置自己的默认值下面是一个您可能会觉得有用的示例:
PYUWSGI_ARGS=["--master","--strict","--need-app","--module".":".join(WSGI_APPLICATION.rsplit(".",1)),"--no-orphans","--vacuum","--auto-procname","--enable-threads","--offload-threads=4","--thunder-lock","--static-map","=".join([STATIC_URL.rstrip("/"),STATIC_ROOT]),"--static-expires","/* 7776000",]
别忘了设置类似--socket=:8000
或--http=:8000
的内容,这样你的应用程序就可以监听端口了根据您的设置,通过命令行将其传入可能比在设置中硬编码更有意义
动机
在某些场景中,使用单个入口点分发Django项目以进行命令行交互是有益的当使用shiv之类的东西构建Docker容器或自包含的Python应用程序时,这可能很有用