Django的主要部署平台是 WSGI, 用于Web服务器和应用程序的python标准。
贾戈 startproject
management命令为您设置一个最小的默认WSGI配置,您可以根据项目的需要对其进行调整,并指示任何符合WSGI的应用程序服务器使用。
Django包括以下WSGi服务器的入门文档:
application
对象¶使用wsgi部署的关键概念是 application
应用服务器用来与代码通信的可调用文件。它通常作为名为 application
在服务器可访问的python模块中。
这个 startproject
命令创建文件 <project_name>/wsgi.py
包含这样一个 application
可赎回的。
它被Django的开发服务器和生产WSGi部署所使用。
wsgi服务器获取 application
可从配置中调用。Django的内置服务器,即 runserver
命令,从 WSGI_APPLICATION
设置。默认设置为 <project_name>.wsgi.application
,哪个指向 application
可调用的 <project_name>/wsgi.py
.
当wsgi服务器加载您的应用程序时,django需要导入设置模块——这就是定义整个应用程序的地方。
Django使用 DJANGO_SETTINGS_MODULE
用于定位相应设置模块的环境变量。它必须包含指向设置模块的虚线路径。您可以对开发和生产使用不同的值;这完全取决于您如何组织设置。
如果未设置此变量,则默认 wsgi.py
将它设置为 mysite.settings
在哪里 mysite
是项目的名称。就是这样 runserver
默认情况下查找默认设置文件。
备注
由于环境变量是全过程的,所以当您在同一个过程中运行多个Django站点时,这不起作用。这发生在mod wsgi身上。
要避免此问题,请在每个站点的守护进程中使用mod wsgi的守护进程模式,或者通过强制 os.environ["DJANGO_SETTINGS_MODULE"] = "mysite.settings"
在你 wsgi.py
.
申请 WSGI middleware 可以包装应用程序。例如,您可以在 wsgi.py
::
from helloworld.wsgi import HelloWorldApplication
application = HelloWorldApplication(application)
如果要将django应用程序与另一个框架的wsgi应用程序组合在一起,还可以将django wsgi应用程序替换为自定义wsgi应用程序,该应用程序稍后将委托给django wsgi应用程序。
12月 18, 2023