将django设置从应用程序导入到项目设置中?

brgchamk  于 2021-07-14  发布在  Java
关注(0)|答案(1)|浏览(315)

我有几个项目都使用“共享应用程序”。在那个共享的应用程序中,我有一个名为 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”的吗?

q8l4jmvw

q8l4jmvw1#

如果我理解你的话,你可以:

from share_app import *

相关问题