将应用程序中的 Django 设置导入项目设置?
Import Django settings from app into project settings?
我有几个项目都使用 'shared_app'。在那个 shared_app 中,我有一个名为 default_settings.py
的模块,其中包含 所有 项目使用的设置,这些项目具有 shared_app.
文件夹结构是通常的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()
命令?还有什么吗'pythonic'?
如果我理解正确的话,你可以这样做:
from share_app import *
我有几个项目都使用 'shared_app'。在那个 shared_app 中,我有一个名为 default_settings.py
的模块,其中包含 所有 项目使用的设置,这些项目具有 shared_app.
文件夹结构是通常的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()
命令?还有什么吗'pythonic'?
如果我理解正确的话,你可以这样做:
from share_app import *