我有几个项目都使用“共享应用程序”。在那个共享的应用程序中,我有一个名为 default_settings.py
包含具有该共享应用程序的所有项目所使用的设置的。
文件夹结构是常用的django结构:
project_dir
|
- project_dir
|
- settings.py
- urls.py
- wsgi.py
- shared_app
|
- default_settings.py
- ... all other app files ...
- other_app
- some_other_app
- ...other project files....
在我的 project_dir/settings.py
我有这些台词:
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
exec(
open(os.path.join(BASE_DIR, "shared_app", "default_settings.py")).read()
) in globals()
# Below this line - I can use any settings from default_settings.py
if DEBUG:
SESSION_EXPIRE_AT_BROWSER_CLOSE = False
这个 default_settings.py
文件包含以下内容:
DEBUG = is_debug(os.environ.get("DJANGO_DEBUG"))
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
SECRET_KEY = os.environ.get("DJANGO_SECRET_KEY")
SESSION_EXPIRE_AT_BROWSER_CLOSE = True
这里面的设置实在太多了 default_settings.py
有点像 from share_app import THIS, THAT, OTHER
大约有20-30个设置。
有没有更好的办法?还是说我被那个有点混乱,丑陋的东西困住了 exec()
命令?还有什么比这更“Python”的吗?
1条答案
按热度按时间q8l4jmvw1#
如果我理解你的话,你可以: