Skip to main content

django12factor: Bringing 12factor to Django

Project description

What is it?

Django is an awesome Python web framework.

The Twelve-Factor App“ is an awesome methodology for building SaaS apps.

django-12factor makes Django more 12factor-y. Right now, this focuses on the Config - “Store config in the environment”; Heroku users with addons will be particularly familiar with this.

Usage

Add the following to the bottom of your settings.py:

import django12factor
d12f = django12factor.factorise()

factorise() returns a dict of settings, so you can now use and assign them as you wish, e.g.

DEBUG = d12f['DEBUG']
LOGGING = d12f['LOGGING']

If you don’t like that repetition, you can (ab)use globals() like so:

import django12factor
d12f = django12factor.factorise()

def f(setting):
    globals()[setting] = d12f[setting]

f('DEBUG')
f('LOGGING')

You can also add non-Django settings this way, e.g. keys to APIs:

d12f = django12factor.factorise(custom_settings=['MAILCHIMP_API_KEY', 'GOOGLE_ANALYTICS_KEY'])

MAILCHIMP_API_KEY = d12f['MAILCHIMP_API_KEY']
GOOGLE_ANALYTICS_KEY = d12f['GOOGLE_ANALYTICS_KEY']

Give me everything!

If you say so…

import django12factor
globals().update(django12factor.factorise())

Settings

The following settings are currently supported:

DEBUG

TEMPLATE_DEBUG

CACHES

Uses django-cache-url

LOGGING

DATABASES

Uses dj-database-url - parses DATABASE_URL if it exists, otherwise falls back to in-memory sqlite.

ALLOWED_HOSTS

SECRET_KEY

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django12factor-1.2.tar.gz (3.2 kB view details)

Uploaded Source

File details

Details for the file django12factor-1.2.tar.gz.

File metadata

  • Download URL: django12factor-1.2.tar.gz
  • Upload date:
  • Size: 3.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for django12factor-1.2.tar.gz
Algorithm Hash digest
SHA256 fea88173f1a5343e827595fca0e052d91680d5c91da6d8ad4bee8bac1bc3c452
MD5 70a224a5516dd6a811a4fadc3155d467
BLAKE2b-256 aead9f4938f1a928e0114c1f2232ef98092bca0e3b2d473cf3aaacee73af9bdf

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page