Django,改变settings.py的默认位置或使用其他文件

4 投票
1 回答
3349 浏览
提问于 2025-04-18 07:11

我正在尝试为我的Django应用设置一个新的settings.py结构。(Django 1.7b4 - python 3.3.2)

- manage.py
- mainapp
  -- wsgi.py
  -- urls.py
  -- settings
     --- __init__.py
     --- common.py
     --- development.py
     --- production.py

我已经修改了manage.py和wsgi.py,具体如下:

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mainapp.settings.common")

但是我遇到了一个“空的密钥错误”。因为Django还是试图在mainapp.settings里寻找设置(这是默认的),并且在空的init.py文件里查找...

在我的Mac OS终端中,我检查并修改了DJANGO_SETTINGS_MODULE这个环境变量...但是没有任何变化。Django总是搜索默认的位置。

1 个回答

3

你需要为你的网页服务器设置一个叫做 DJANGO_SETTINGS_MODULE 的环境变量。对于apache服务器来说,这个设置的方式是:

SetEnv DJANGO_SETTINGS_MODULE mainapp.settings.common

我已经把这个加到我的虚拟主机配置里,效果很好。

如果你使用的是开发服务器(runserver),你可以指定一个自定义的设置模块:

python manage.py runserver --settings=mainapp.settings.common

撰写回答