我是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应用程序的起点,对吗?
如果我错了,请纠正我。
答案 0 :(得分:4)
最终wsgi文件是django应用程序的起点,对吗?
不一定。 documentation for WSGI_APPLICATION
解释了此设置的用途:
Django的内置服务器(例如
runserver
)将使用的WSGI应用程序对象的完整Python路径。
您设置的任何服务器都必须知道WSGI文件的位置。如果您使用的是外部服务器,它将查看自己的设置。如果您正在使用Django的开发服务器,它将检查Django的设置。因此,您注意到的循环性是Django应用程序可以通过多种不同方式启动的结果。
答案 1 :(得分:0)
恕我直言,wsgi.py扮演着指向你的django项目所在的角色,对于像Apache这样的其他东西。
因此wsgi.py在django之外启动,它需要django设置。