django-split-settings
Organize Django settings into multiple files and directories. Easily override and modify settings. Use wildcards and optional settings files.
What it is and what it does
django-split-settings lets you break a monolithic Django settings.py into separate, composable files organized by concern—database config, installed apps, logging, environment-specific overrides—and include them in order. Each included file has access to the settings namespace built by previous files, so later files can import and modify earlier settings. You can use glob wildcards to include groups of files, mark files as optional (included only if they exist), and organize settings hierarchically in subdirectories.
The package is a pure-Python utility with no dependencies, making it lightweight to add to any Django project. It's useful for teams managing multiple environments (dev, staging, production), for large projects where settings have grown unwieldy, or for monorepos where different services need different configurations. The main gotcha is that BASE_DIR path calculations need adjustment when settings becomes a module instead of a single file.
Use it for:
- Separate database, cache, logging, and app-specific settings into individual files for clarity and reuse.
- Manage environment-specific overrides without duplicating base configuration across dev, staging, and production.
- Organize settings by feature or app in a large Django project to reduce merge conflicts and improve maintainability.
- Use wildcards to auto-include all settings from a directory without manually listing each file.
- Mark optional settings files so local developer overrides don't break CI/CD or production deployments.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Splits Django settings across multiple files and directories with support for wildcards, optional files, and environment-specific overrides.
Yes. The package is stable (Production/Stable status, no known vulnerabilities), has zero dependencies, and solves a real pain point in Django configuration management. Dormant maintenance is a minor concern—the package is simple and unlikely to need frequent updates—but verify compatibility with your specific Django and Python versions before adopting.
Install
django-split-settings on PyPI
pip
pip install django-split-settingsuv
uv add django-split-settingspoetry
poetry add django-split-settingsInstalling django-split-settings
Before you install
Low friction: no runtime dependencies, pure Python wheel. Dormant maintenance (770 days since last release) but stable and production-ready; officially supports Django 4.2, 5.0, 5.1 and Python 3.9–3.12.
License in practice
BSD-2-Clause permissive license; no restrictions on use, modification, or distribution in commercial or private projects.
Quickstart
pip install django-split-settings
# In settings/__init__.py or settings.py:
from django_split_settings import optional, include
include(
'components/base.py',
'components/database.py',
optional('local_settings.py')
)
Requires Python 3.9+ and Django 4.2, 5.0, or 5.1; BASE_DIR path calculation changes when settings becomes a module rather than a file.
Verify before relying
- Whether dormant status (no commits in 770 days) affects compatibility with future Django or Python releases.
- Performance impact of wildcard includes on large numbers of settings files.
- Exact import path and API surface of the package's public interface.
Package facts
| License | BSD-2-Clause (permissive) |
| Python support | supports the current Python release (<4.0,>=3.9) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | dormant — 770 days since the last release |
| First released | |
| Downloads | 363,342/month — #7,222 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: django_split_settings-1.3.2-py3-none-any.whl
Keywords: django, settings, configuration, config
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
django-environLoads and parses environment variables from…
permissive · top 5,000 on PyPI
django-configurationsOrganizes Django settings using composable…
permissive · top 15,000 on PyPI
django-settings-exportProvides a Django template context processor…
permissive · top 15,000 on PyPI
django-fiberDjango Fiber is a lightweight Django CMS that…
permissive · top 15,000 on PyPI
django-dynamic-preferencesStores and retrieves application settings…
permissive · top 15,000 on PyPI
python-decoupleReads configuration parameters from environment…
permissive · top 5,000 on PyPI
django-pipelinedjango-pipeline bundles and compresses CSS and…
permissive · top 15,000 on PyPI
django-constanceDjango-constance lets you store and manage…
permissive · top 5,000 on PyPI
django-dotenvLoads environment variables from a .env file…
permissive · top 15,000 on PyPI
django-decorator-includeApplies decorators to Django URL patterns…
permissive · top 15,000 on PyPI