django-split-settings

Organize Django settings into multiple files and directories. Easily override and modify settings. Use wildcards and optional settings files.

Github stars Tracking Chart


wemake.services
Build Status
Coverage
Docs
Python Version
wemake-python-styleguide

Organize Django settings into multiple files and directories. Easily
override and modify settings. Use wildcards in settings file paths
and mark settings files as optional.

Read this blog post
for more information.
Also, check this example project.

Requirements

While this package will most likely work with the most versions of django, we officially support:

  • 1.11
  • 2.1
  • 2.2
  • 3.0

This package has no dependencies itself.

In case you need older python / django versions support,
then consider using older versions.

Installation

pip install django-split-settings

Usage

Replace your existing settings.py with a list of components that
make up your Django settings. Preferably create a settings package
that contains all the files.

Here's a minimal example:

from split_settings.tools import optional, include

include(
    'components/base.py',
    'components/database.py',
    optional('local_settings.py')
)

In the example, the files base.py and database.py are included
in that order from the subdirectory called components/.
local_settings.py in the same directory is included if it exists.

Note: The local context is passed on to each file, so each
following file can access and modify the settings declared in the
previous files.

We also made a in-depth tutorial.

Tips and tricks

You can use wildcards in file paths:

include('components/my_app/*.py')

Note that files are included in the order that glob returns them,
probably in the same order as what ls -U would list them. The
files are NOT in alphabetical order.

You can modify common settings in environment settings simply importing them

# local_settings.py
from components.base import INSTALLED_APPS

INSTALLED_APPS += (
  'raven.contrib.django.raven_compat',
)

Do you want to contribute?

Read the CONTRIBUTING.md file.

Version history

See CHANGELOG.md file.

Main metrics

Overview
Name With Ownerwemake-services/django-split-settings
Primary LanguagePython
Program languagePython (Language Count: 1)
Platform
License:BSD 3-Clause "New" or "Revised" License
所有者活动
Created At2013-05-17 06:04:30
Pushed At2025-05-17 14:58:37
Last Commit At2025-05-17 16:58:37
Release Count15
Last Release Name1.3.2 (Posted on 2024-07-05 17:29:50)
First Release Namev0.1.2 (Posted on 2015-05-05 09:23:30)
用户参与
Stargazers Count1.2k
Watchers Count16
Fork Count69
Commits Count565
Has Issues Enabled
Issues Count48
Issue Open Count5
Pull Requests Count390
Pull Requests Open Count2
Pull Requests Close Count136
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private