如何使用 WSGI 进行部署

    Django’s management command sets up a minimal default WSGI configuration for you, which you can tweak as needed for your project, and direct any WSGI-compliant application server to use.

    Django 提供了下面这些 WSGI 服务的入门文档:

    用 WSGI 部署的关键是 application callable,应用服务器用它与你的代码交互。 application callable 一般以一个位于 Python 模块中,名为 application 的对象的形式提供,且对服务器可见。

    startproject 命令创建了文件 ,其中包含了 application callable。

    WSGI 服务器从其配置中获取 application callable 的路径。Django 的默认服务器( 命令),从配置项 WSGI_APPLICATION 中获取。默认值是 <project_name>.wsgi.application,指向 <project_name>/wsgi.py 中的 application callable。

    当 WSGI 服务器加载应用时,Django 需要导入配置模块——完整定义应用的地方。

    Django 利用 环境变量来定位合适的配置模块。它必须包含到配置模块的点式路径。开发环境和生产环境可以配置不同值;这都取决于你是如何组织配置的。

    若未设置该变量, wsgi.py 默认将其设置为 mysite.settingsmysite 即工程名字。这就是 runserver 默认的发现默认配置行为。

    由于环境变量是进程级的,所以如果在同一进程运行多个 Django 站点将出错。这在使用 mod_wsgi 时会出现。

    要避免此问题,为每个站点在后台进程使用 mod_wsgi 的后台模式,或者在 wsgi.py 中通过 os.environ["DJANGO_SETTINGS_MODULE"] = "mysite.settings" 重写来自环境变量的值。

    To apply you can wrap the application object. For instance you could add these lines at the bottom of wsgi.py:

    如果你想将 Django 应用于一个 WSGI 应用或其它框架联合起来,可以用自定义 WSGI 应用替换 Django 的 WSGI 应用,前者会在稍晚时候将任务委托给 WSGI 应用。