|
|
|
@ -1,49 +1,23 @@ |
|
|
|
|
# -*- coding: utf-8 -*- |
|
|
|
|
"""Application configuration.""" |
|
|
|
|
import os |
|
|
|
|
"""Application configuration. |
|
|
|
|
|
|
|
|
|
Most configuration is set via environment variables. |
|
|
|
|
|
|
|
|
|
class Config(object): |
|
|
|
|
"""Base configuration.""" |
|
|
|
|
For local development, use a .env file to set |
|
|
|
|
environment variables. |
|
|
|
|
""" |
|
|
|
|
from environs import Env |
|
|
|
|
|
|
|
|
|
SECRET_KEY = os.environ.get('{{cookiecutter.app_name | upper}}_SECRET', 'secret-key') # TODO: Change me |
|
|
|
|
APP_DIR = os.path.abspath(os.path.dirname(__file__)) # This directory |
|
|
|
|
PROJECT_ROOT = os.path.abspath(os.path.join(APP_DIR, os.pardir)) |
|
|
|
|
BCRYPT_LOG_ROUNDS = 13 |
|
|
|
|
DEBUG_TB_ENABLED = False # Disable Debug toolbar |
|
|
|
|
env = Env() |
|
|
|
|
env.read_env() |
|
|
|
|
|
|
|
|
|
ENV = env.str('FLASK_ENV', default='production') |
|
|
|
|
DEBUG = ENV == 'development' |
|
|
|
|
SQLALCHEMY_DATABASE_URI = env.str('DATABASE_URL') |
|
|
|
|
SECRET_KEY = env.str('SECRET_KEY') |
|
|
|
|
BCRYPT_LOG_ROUNDS = env.int('BCRYPT_LOG_ROUNDS', default=13) |
|
|
|
|
DEBUG_TB_ENABLED = DEBUG |
|
|
|
|
DEBUG_TB_INTERCEPT_REDIRECTS = False |
|
|
|
|
CACHE_TYPE = 'simple' # Can be "memcached", "redis", etc. |
|
|
|
|
SQLALCHEMY_TRACK_MODIFICATIONS = False |
|
|
|
|
WEBPACK_MANIFEST_PATH = 'webpack/manifest.json' |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class ProdConfig(Config): |
|
|
|
|
"""Production configuration.""" |
|
|
|
|
|
|
|
|
|
ENV = 'prod' |
|
|
|
|
DEBUG = False |
|
|
|
|
SQLALCHEMY_DATABASE_URI = 'postgresql://localhost/example' # TODO: Change me |
|
|
|
|
DEBUG_TB_ENABLED = False # Disable Debug toolbar |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class DevConfig(Config): |
|
|
|
|
"""Development configuration.""" |
|
|
|
|
|
|
|
|
|
ENV = 'dev' |
|
|
|
|
DEBUG = True |
|
|
|
|
DB_NAME = 'dev.db' |
|
|
|
|
# Put the db file in project root |
|
|
|
|
DB_PATH = os.path.join(Config.PROJECT_ROOT, DB_NAME) |
|
|
|
|
SQLALCHEMY_DATABASE_URI = 'sqlite:///{0}'.format(DB_PATH) |
|
|
|
|
DEBUG_TB_ENABLED = True |
|
|
|
|
CACHE_TYPE = 'simple' # Can be "memcached", "redis", etc. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class TestConfig(Config): |
|
|
|
|
"""Test configuration.""" |
|
|
|
|
|
|
|
|
|
TESTING = True |
|
|
|
|
DEBUG = True |
|
|
|
|
SQLALCHEMY_DATABASE_URI = 'sqlite://' |
|
|
|
|
BCRYPT_LOG_ROUNDS = 4 # For faster tests; needs at least 4 to avoid "ValueError: Invalid rounds" |
|
|
|
|
WTF_CSRF_ENABLED = False # Allows form testing |
|
|
|
|