import os import secrets class Config: """Base config.""" SECRET_KEY = os.environ.get('SECRET_KEY') or secrets.token_hex(32) SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL') or 'sqlite:///instance/app.db' SQLALCHEMY_TRACK_MODIFICATIONS = False WTF_CSRF_ENABLED = True WTF_CSRF_SECRET_KEY = os.environ.get('CSRF_SECRET_KEY') or secrets.token_hex(32) SESSION_TYPE = 'filesystem' SESSION_PERMANENT = False PERMANENT_SESSION_LIFETIME = 3600 # 1 hour REMEMBER_COOKIE_DURATION = 2592000 # 30 days class DevelopmentConfig(Config): """Development config.""" DEBUG = True SQLALCHEMY_DATABASE_URI = os.environ.get("DATABASE_URL", "sqlite:///app.db") SQLALCHEMY_ECHO = True class ProductionConfig(Config): """Production config.""" DEBUG = False TESTING = False SQLALCHEMY_DATABASE_URI = os.environ.get("DATABASE_URL", "sqlite:///app.db") SESSION_COOKIE_SECURE = True REMEMBER_COOKIE_SECURE = True class TestingConfig(Config): """Testing config.""" TESTING = True SQLALCHEMY_DATABASE_URI = "sqlite:///:memory:" WTF_CSRF_ENABLED = False