python - 为什么我们必须在 Django 设置中提供 WSGI_APPLICATION 变量

标签 python django django-settings django-wsgi

我是一名初学者 Django 开发人员,所以如果这个问题没有意义,请原谅我。

我们在 django 设置中提供了一个名为 WSGI_APPLICATION 的变量以及 ROOT_URLCONF 和一些其他设置变量。我们也在 wsgi.py 文件中提供设置文件路径,

import os
import django.core.wsgi import get_wsgi_application
os.environ.setdefault("DJANGO_SETTINGSS_MODULE", "<settings_file_path>")
application = get_wsgi_application()

所以你看,这是双向连接。对吧?

我的意思是 wsgi 文件中设置文件的路径和设置文件中 wsgi 文件的路径。那么为什么我们必须这样做。

根据我的理解,wsgi 文件中设置文件的路径应该足够好,我们不需要 django 设置中的额外变量?

最终wsgi文件是django应用程序的起点,对吧?

不对的地方请指正。

最佳答案

最终 wsgi 文件是 django 应用程序的起点,对吧?

不一定。 documentation for WSGI_APPLICATION解释此设置的用途:

The full Python path of the WSGI application object that Django’s built-in servers (e.g. runserver) will use.

您设置的任何服务器都必须知道 WSGI 文件在哪里。如果您使用的是外部服务器,它将查看自己的设置。如果您使用 Django 的开发服务器,它将检查 Django 的设置。因此,您注意到的循环是 Django 应用程序可以通过多种不同方式启动这一事实的结果。

关于python - 为什么我们必须在 Django 设置中提供 WSGI_APPLICATION 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36105946/

相关文章:

python - 为什么 Python io 流不会在 __del__ 上关闭?

python - 无法正确计算 np.cov()

django - ValueError : not enough values to unpack (expected 2, 得到 1)

python - 如何获取模板中的 "price_retail"字段值?

python - 在Python中设置环境变量

python - 为什么 Django 应用程序需要 `manage.py` 而不是使用 `__init__py` ?

python - 是否有零拷贝的方法从内存 View 创建字节数组?

python - 如何填充列表中的值并将其转换为数据帧?

mysql - 1045, "Access denied for user ' root' @'localhost'(使用密码 : NO)")

python - 没有名为 'django.contrib.staticfiles.templatetags' 的模块