The ixc_django_docker Python package is a Django project (settings, URLs,
etc.) that wraps another project by including additional settings, static files,
templates, URLs, etc., from the other project.
This makes it easy to enable optional but commonly needed features and evolve our shared understanding of current best practices over time.
It includes:
- A
manage.pyscript that you can execute from any directory when your project environment is active. - Safe and secure default settings with integration hooks for your project.
- Optional composable settings modules that solve issues relating to horizontal scaling and ephemeral infrastructure or enable commonly needed features.
- Override settings for develop, staging, test, and production environments.
- Optional integrations with LogEntries, New Relic and Sentry.
- Public and private storage classes that can be configured as local or remote
(S3) via the
ENABLE_S3_STORAGEsetting, or use unique (forever-cacheable) names via theENABLE_UNIQUE_STORAGEsetting - A
get_local_file_path()context manager, for when local file system access is required (e.g. transcoding an audio file in a subprocess). - An
environmentcontext processor that wraps a project context processor and includes any settings specified inCONTEXT_PROCESSOR_SETTINGS. - An
environmentfunction that wraps theenvironmentcontext processor and addsstaticandurlfunctions, returned as a Jinja2Environmentobject, so you can more easily use both Django and Jinja2 template engines. - Automatically install Bower components, Node modules and Python packages, or apply Django migrations, when required.
- Automatically create required runtime directories at startup.
- Remote debugging with PyCharm. For example, when your application is running in a container or on a remote server.
- Show a coverage report after you run tests.