· 7 years ago · Jun 24, 2018, 02:18 AM
1import environ
2root = environ.Path(__file__) - 2
3# SECURITY WARNING: don't run with debug turned on in production!
4env = environ.Env(DEBUG=(bool, True),) # set default values and casting
5environ.Env.read_env() # reading .env file
6
7ALLOWED_HOSTS = ['localhost', *env("ALLOWED_HOSTS", default="").split(",")]
8
9SITE_ROOT = root()
10
11DEBUG = env('DEBUG') # False if not in os.environ
12TEMPLATE_DEBUG = DEBUG
13
14DATABASES = {
15 'default': env.db(default="sqlite:///"+root("db.sqlite3")),
16}
17
18public_root = root.path('public/')
19
20MEDIA_ROOT = public_root('media')
21MEDIA_URL = '/media/'
22STATIC_ROOT = public_root('static')
23STATIC_URL = '/static/'
24
25
26CACHES = {
27 'default': env.cache(default="pymemcache://"),
28}
29
30# SECURITY WARNING: keep the secret key used in production secret!
31SECRET_KEY = env('SECRET_KEY',default=None)
32if not SECRET_KEY:
33 SECRET_FILE = root('secret.txt')
34 try:
35 SECRET_KEY = open(SECRET_FILE).read().strip()
36 except IOError:
37 import random
38 SECRET_KEY = ''.join([random.SystemRandom().choice('abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*(-_=+)') for i in range(50)])
39 try:
40 secret = open(SECRET_FILE, 'w')
41 secret.write(SECRET_KEY)
42 secret.close()
43 except IOError:
44 print("Can not store secret key file, using ephemeral secret key, which will cause session errors")
45 print("Please either specify a `SECRET_KEY` in your env, or ensure `{}` if writeable.".format(SECRET_FILE))