【发布时间】:2013-09-10 15:58:06
【问题描述】:
我有一个包含多个应用程序的 django 项目。每个都链接到不同的数据库,并且可能具有不同的设置。我将 mod_wsgi 与 apache 一起使用。 实际上,我正在遵循here 找到的一种方法:读取 .ini 文件。
当用户尝试访问我的应用时,如何加载特定于我的应用的 settings.ini?
我可以在我的 settings.py 中加载/读取特定的 settings.ini,它工作正常。我只想加载/读取用户请求的应用程序的 settings.ini。
如何知道应用程序提供正确的加载路径? (通过网址?)
请查看我的简化项目树:
├── django.wsgi
├── manage.py
├── global
│ ├── __init__.py
│ ├── settings.py
│ ├── wsgi.py
├── my_app1
│ ├── admin.py
│ ├── __init__.py
│ ├── models.py
│ ├── settings.ini
│ └── ...
├── my_app2
│ ├── admin.py
│ ├── __init__.py
│ ├── models.py
│ ├── settings.ini
│ └── ...
在我的 setting.py 顶部读取我的特定设置文件:
import configparser
config = configparser.ConfigParser()
config.read('/path/to/my/settings.ini')
DEBUG = config['debug']['DEBUG']
TEMPLATE_DEBUG = config['debug']['TEMPLATE_DEBUG']
...
我的 settings.ini 看起来像这样:
[debug]
DEBUG = True
TEMPLATE_DEBUG = DEBUG
...
有什么建议吗?
【问题讨论】:
-
如果你想使用多个数据库,试试这个docs.djangoproject.com/en/dev/topics/db/multi-db
-
谢谢。我已经看过这个页面了。我认为数据库路由器可能就足够了,但我更愿意找到更广泛的机会。