Created
April 9, 2014 04:29
-
-
Save dirn/10226163 to your computer and use it in GitHub Desktop.
My Django settings
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import os | |
from django.core.exceptions import ImproperlyConfigured | |
# Shortcuts courtesy of @kennethlove | |
here = lambda *x: os.path.join(os.path.abspath(os.path.dirname(__file__)), *x) | |
PROJECT_ROOT = here('..') | |
root = lambda *x: os.path.join(os.path.abspath(PROJECT_ROOT), *x) | |
def config(key, default=None): | |
"""Gets an environment setting. | |
This function is a helper to get a setting from ``os.environ``. If | |
the setting hasn't been defined and ``default`` is ``None``, | |
``django.core.exceptions.ImproperlyConfigured`` will be raised. | |
This function was adapted from ``get_env_variable()`` as defined in | |
"Two Scoops of Django" by @pydanny and @audreyr. | |
:param key: The name of the environment setting. | |
:type key: str | |
:param default: The value to use if the setting isn't defined. | |
:type default: mixed | |
:returns: mixed -- the value of the setting or ``default``. | |
:raises: ImproperlyConfigured | |
""" | |
if default is None and key not in os.environ: | |
message = 'Set the {} environment setting.'.format(key) | |
raise ImproperlyConfigured(message) | |
return os.environ.get(key, default) | |
TEMPLATE_DEBUG = DEBUG = config('DEBUG', False) == 'True' | |
MANAGERS = ADMINS = () | |
DATABASES = { | |
'default': { | |
'ENGINE': 'django.db.backends.postgresql_psycopg2', | |
'NAME': 'cubeecraft', | |
} | |
} | |
# Local time zone for this installation. Choices can be found here: | |
# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name | |
# although not all choices may be available on all operating systems. | |
# In a Windows environment this must be set to your system time zone. | |
TIME_ZONE = 'America/New_York' | |
# Language code for this installation. All choices can be found here: | |
# http://www.i18nguy.com/unicode/language-identifiers.html | |
LANGUAGE_CODE = 'en-us' | |
SITE_ID = 1 | |
# If you set this to False, Django will make some optimizations so as not | |
# to load the internationalization machinery. | |
USE_I18N = True | |
# If you set this to False, Django will not format dates, numbers and | |
# calendars according to the current locale. | |
USE_L10N = True | |
# If you set this to False, Django will not use timezone-aware datetimes. | |
USE_TZ = True | |
# Absolute filesystem path to the directory that will hold user-uploaded files. | |
# Example: "/var/www/example.com/media/" | |
MEDIA_ROOT = root('..', 'media') | |
# URL that handles the media served from MEDIA_ROOT. Make sure to use a | |
# trailing slash. | |
# Examples: "http://example.com/media/", "http://media.example.com/" | |
MEDIA_URL = config('MEDIA_URL', '/media/') | |
# Absolute path to the directory static files should be collected to. | |
# Don't put anything in this directory yourself; store your static files | |
# in apps' "static/" subdirectories and in STATICFILES_DIRS. | |
# Example: "/var/www/example.com/static/" | |
STATIC_ROOT = root('..', 'static') | |
# URL prefix for static files. | |
# Example: "http://example.com/static/", "http://static.example.com/" | |
STATIC_URL = config('STATIC_URL', '/static/') | |
# Additional locations of static files | |
STATICFILES_DIRS = ( | |
root('static'), | |
) | |
# List of finder classes that know how to find static files in | |
# various locations. | |
STATICFILES_FINDERS = ( | |
'django.contrib.staticfiles.finders.FileSystemFinder', | |
'django.contrib.staticfiles.finders.AppDirectoriesFinder', | |
) | |
# Make this unique, and don't share it with anybody. | |
default_secret_key = 'SOME SECRET KEY VALUE HERE' | |
SECRET_KEY = config('SECRET_KEY', default_secret_key) | |
# List of callables that know how to import templates from various sources. | |
TEMPLATE_LOADERS = ( | |
'django.template.loaders.filesystem.Loader', | |
'django.template.loaders.app_directories.Loader', | |
) | |
MIDDLEWARE_CLASSES = ( | |
'django.middleware.common.CommonMiddleware', | |
'django.contrib.sessions.middleware.SessionMiddleware', | |
'django.middleware.csrf.CsrfViewMiddleware', | |
'django.contrib.auth.middleware.AuthenticationMiddleware', | |
'django.contrib.messages.middleware.MessageMiddleware', | |
'django.middleware.clickjacking.XFrameOptionsMiddleware', | |
) | |
ROOT_URLCONF = 'cubeecraft.urls' | |
# Python dotted path to the WSGI application used by Django's runserver. | |
WSGI_APPLICATION = 'cubeecraft.wsgi.application' | |
TEMPLATE_DIRS = ( | |
root('templates'), | |
) | |
DJANGO_APPS = ( | |
'django.contrib.auth', | |
'django.contrib.contenttypes', | |
'django.contrib.sessions', | |
'django.contrib.sites', | |
'django.contrib.messages', | |
'django.contrib.staticfiles', | |
'django.contrib.admin', | |
) | |
THIRD_PARTY_APPS = () | |
LOCAL_APPS = ( | |
'accounts', | |
) | |
INSTALLED_APPS = DJANGO_APPS + THIRD_PARTY_APPS + LOCAL_APPS | |
# A sample logging configuration. The only tangible logging | |
# performed by this configuration is to send an email to | |
# the site admins on every HTTP 500 error when DEBUG=False. | |
# See http://docs.djangoproject.com/en/dev/topics/logging for | |
# more details on how to customize your logging configuration. | |
LOGGING = { | |
'version': 1, | |
'disable_existing_loggers': False, | |
'filters': { | |
'require_debug_false': { | |
'()': 'django.utils.log.RequireDebugFalse' | |
} | |
}, | |
'handlers': { | |
'mail_admins': { | |
'level': 'ERROR', | |
'filters': ['require_debug_false'], | |
'class': 'django.utils.log.AdminEmailHandler' | |
} | |
}, | |
'loggers': { | |
'django.request': { | |
'handlers': ['mail_admins'], | |
'level': 'ERROR', | |
'propagate': True, | |
}, | |
} | |
} | |
# Things beyond the defaults: | |
AUTH_USER_MODEL = 'accounts.User' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from .base import * | |
TEMPLATE_DEBUG = DEBUG = False | |
DATABASES = { | |
'default': { | |
'ENGINE': 'django.db.backends.postgresql_psycopg2', | |
'NAME': 'cubeecraft', | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
import os | |
import sys | |
if __name__ == "__main__": | |
from django.core.management import execute_from_command_line | |
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "cubeecraft.settings.{}".format(sys.argv[1])) | |
execute_from_command_line([sys.argv[0]] + sys.argv[2:]) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from postgresify import postgresify | |
from S3 import CallingFormat | |
from .base import * | |
DATABASES = postgresify() | |
INSTALLED_APPS += ('storages', 'raven.contrib.django') | |
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage' | |
STATICFILES_STORAGE = 'storages.backends.s3boto.S3BotoStorage' | |
AWS_QUERYSTRING_AUTH = False | |
AWS_HEADERS = { | |
'Expires': 'Thu, 15 Apr 2020 20:00:00 GMT', | |
'Cache-Control': 'max-age=86400', | |
} | |
AWS_CALLING_FORMAT = CallingFormat.SUBDOMAIN | |
AWS_ACCESS_KEY_ID = config('AWS_ACCESS_KEY_ID') | |
AWS_ACCESS_SECRET_KEY = config('AWS_ACCESS_SECRET_KEY') |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Inspired by a combination of Two Scoops of Django and https://github.com/alex/django-project-skeleton.