Django设置文件路径
我正在尝试创建一个自定义的Django模板。这个项目模板的结构如下:
project_name/
docs/
reqs/
src/
...
settings/
...
dev.py
prod.py
manage.py
wsgi.py
...
Procfile
requirements.txt
我在弄清楚怎么在manage.py
和wsgi.py
中正确地包含设置文件时遇到了困难。我应该写成src.settings.dev
还是settings.dev
呢?
目前,
manage.py
中有os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings.dev")
(在本地运行时)
而
wsgi.py
中有os.environ.setdefault("DJANGO_SETTINGS_MODULE", "src.settings.prod")
。(在heroku上运行时)
这两种写法在执行命令./manage.py runserver
和gunicorn src.wsgi
时都能正常工作。
我想知道,决定设置路径的是执行的文件还是项目的路径?希望能得到一些帮助。
2 个回答
0
其实,这和这两者都没关系。设置文件是一个普通的Python模块,所以它必须像其他Python模块一样可以被导入。这就意味着它的路径必须在PYTHONPATH里面。
在你的情况下,可能是有某个地方把“/path/to/project_name”和“/path/to/project_name/src”都添加到了PYTHONPATH里,这可能是通过设置环境变量,或者在脚本里面直接修改了sys.path
。
0
我了解到,当给manage.py提供设置文件时,它会尝试在两个地方寻找这些设置,
1. 在它自己所在的路径(也就是manage.py的路径)
2. 还有在PYTHONPATH这个环境变量指定的路径