将Django设置组织到多个文件和目录中。轻松覆盖和修改设置。使用通配符和可选设置文件。
项目描述
将Django设置组织到多个文件和目录中。轻松覆盖和修改设置。在设置文件路径中使用通配符,并将设置文件标记为可选。
要求
虽然这个包可能适用于大多数版本的django
,但我们官方支持
- 4.2
- 5.0
- 5.1
这个包本身没有依赖。
如果您需要支持旧版的python
/ django
版本,请考虑使用较旧的django-split-settings
版本。
安装
pip install django-split-settings
用法
将现有的settings.py
替换为您Django设置组成的组件列表。最好创建一个包含所有文件的设置包。
以下是一个最小示例
from split_settings.tools import optional, include
include(
'components/base.py',
'components/database.py',
optional('local_settings.py')
)
在示例中,从名为components/
的子目录中按照该顺序包含了文件base.py
和database.py
。如果存在,则包含同一目录下的local_settings.py
。
注意:将本地上下文传递给每个文件,因此每个后续文件都可以访问并修改先前文件中声明的设置。
我们还制作了一个深入的教程。
技巧和技巧
您可以在文件路径中使用通配符
include('components/my_app/*.py')
请注意,文件是按照glob
返回它们的顺序包含的,可能类似于ls -U
列出的顺序。文件不是按字母顺序排列的。
您可以通过简单地导入它们来在环境设置中修改常见的设置
# local_settings.py
from components.base import INSTALLED_APPS
INSTALLED_APPS += (
'raven.contrib.django.raven_compat',
)
更新BASE_DIR
django create-project
命令将在您的settings.py
中创建一个名为BASE_DIR
的变量,该变量通常用于定位静态文件、媒体文件和模板。
# Created by django create-project
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
STATIC_ROOT = os.path.join(BASE_DIR, "staticfiles/")
MEDIA_ROOT = os.path.join(BASE_DIR, "mediafiles/")
BASE_DIR
的表达式意味着:获取当前文件(settings.py
)的路径,获取父文件夹(无论您将项目命名为什么),获取父文件夹(项目的根目录)。因此STATIC_ROOT
将被评估为/staticfiles
(其中/
表示项目的根目录/repo)。
使用django-split-settings
后,settings
现在是一个模块(而不是文件),所以os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
将评估为/whatever-you-named-your-project
,而不是/
。
为了修复此问题,需要将BASE_DIR
设置为/whatever-you-named-your-project
的父文件夹
BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
你想贡献吗?
阅读CONTRIBUTING.md文件。
版本历史
查看CHANGELOG.md文件。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分布
构建分布
django_split_settings-1.3.2.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d3975aa3601e37f65c59b9977b6bcb1de8bc27496930054078589c7d56998a9d |
|
MD5 | a51b6266e7aa2307ba213c7c14188d69 |
|
BLAKE2b-256 | deb91c13089454afd7a42d492b8aa8a0c7e49eeca58c0f2ad331f361a067c876 |
django_split_settings-1.3.2-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 72bd7dd9f12602585681074d1f859643fb4f6b196b584688fab86bdd73a57dff |
|
MD5 | c06d6d4bf3b8dc83e295fd86dc2e4e13 |
|
BLAKE2b-256 | 6369d94db8dac55bcfb6b3243578a3096cfda6c42ea5da292c36919768152ec6 |