42 lines
1.1 KiB
Python
42 lines
1.1 KiB
Python
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
|