48 lines
1.4 KiB
Python
48 lines
1.4 KiB
Python
"""应用配置"""
|
|
import os
|
|
from dotenv import load_dotenv
|
|
import redis
|
|
|
|
basedir = os.path.abspath(os.path.dirname(__file__))
|
|
load_dotenv(os.path.join(basedir, '.env'))
|
|
|
|
class Config:
|
|
"""基础配置"""
|
|
SECRET_KEY = os.environ.get('SECRET_KEY') or 'a-hard-to-guess-string'
|
|
SQLALCHEMY_TRACK_MODIFICATIONS = False
|
|
WTF_CSRF_ENABLED = True
|
|
WTF_CSRF_TIME_LIMIT = None
|
|
WTF_CSRF_CHECK_DEFAULT = False
|
|
SESSION_TYPE = 'redis'
|
|
SESSION_PERMANENT = False
|
|
SESSION_USE_SIGNER = True
|
|
SESSION_REDIS = redis.from_url(os.environ.get('REDIS_URL'))
|
|
|
|
@staticmethod
|
|
def init_app(app):
|
|
pass
|
|
|
|
class DevelopmentConfig(Config):
|
|
"""开发环境配置"""
|
|
DEBUG = True
|
|
DB_USER = os.environ.get('DB_USER')
|
|
DB_PASSWORD = os.environ.get('DB_PASSWORD')
|
|
DB_HOST = os.environ.get('DB_HOST')
|
|
DB_NAME = os.environ.get('DB_NAME')
|
|
SQLALCHEMY_DATABASE_URI = f'mysql+pymysql://{DB_USER}:{DB_PASSWORD}@{DB_HOST}/{DB_NAME}'
|
|
|
|
class ProductionConfig(Config):
|
|
"""生产环境配置"""
|
|
DEBUG = False
|
|
DB_USER = os.environ.get('DB_USER')
|
|
DB_PASSWORD = os.environ.get('DB_PASSWORD')
|
|
DB_HOST = os.environ.get('DB_HOST')
|
|
DB_NAME = os.environ.get('DB_NAME')
|
|
SQLALCHEMY_DATABASE_URI = f'mysql+pymysql://{DB_USER}:{DB_PASSWORD}@{DB_HOST}/{DB_NAME}'
|
|
|
|
config = {
|
|
'development': DevelopmentConfig,
|
|
'production': ProductionConfig,
|
|
'default': DevelopmentConfig
|
|
}
|