情况:
我们有一个Django应用程序,它有一个普通的wsgi.py
模块,在运行时创建一个应用程序(WSGIHandler
)。然后通过Nginx为应用程序提供服务。你知道吗
问题:
当wsgi.py
执行时,应该有一些启动代码执行一次。具体代码如下:
django.setup()
)。你知道吗当前解决方案:
我现在实现它的方法是使用一个上下文管理器(参见下面的代码)。乍一看它有点笨拙,但它的表现和预期的一样。你知道吗
问题:
WSGIHandler
(由模块变量application
指向)提供请求?你知道吗__exit__()
完成之前开始向application
提供请求数据吗?你知道吗wsgi.py
,然后访问名为application
的模块变量。有人更清楚吗?你知道吗wsgi.cfg文件(伪代码) 你知道吗
[uwsgi]
module = wsgi:application
wsgi.py公司 你知道吗
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "django_test.settings")
from startup import StartupContext
with StartupContext():
application = get_wsgi_application()
启动.py 你知道吗
class StartupContext():
def __enter__(self):
"""Run before django.setup() is called."""
setup_logging_for_python_process()
def __exit__(self, exc_type, exc_val, exc_tb):
"""Run after django.setup() is called."""
call_command(["showmigrations", "--plan"])
目前没有回答
相关问题 更多 >
编程相关推荐