Files
aitsc/config/production.py
renjianbo 94cbc7f7c0 feat: 添加版本号 v1.0.0 和版本管理功能
- 在 src/flask_prompt_master/__init__.py 添加 __version__ 和 __version_info__
- 创建 VERSION 文件存储版本号
- 更新所有环境配置(development/production/testing/local/base)在启动时显示版本信息
- 更新 README.md 文档添加版本号显示

版本号: v1.0.0

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-02 18:02:02 +08:00

97 lines
3.1 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import os
from .base import Config
class ProductionConfig(Config):
"""
生产环境配置
"""
DEBUG = False
TESTING = False
def __init__(self):
super().__init__()
# 生产环境必须设置的关键配置检查
required_configs = [
('SECRET_KEY', self.SECRET_KEY),
('LLM_API_KEY', self.LLM_API_KEY),
('WX_APPID', self.WX_APPID),
('WX_SECRET', self.WX_SECRET),
('SQLALCHEMY_DATABASE_URI', self.SQLALCHEMY_DATABASE_URI)
]
for name, value in required_configs:
if not value:
raise ValueError(f"生产环境必须设置{name}环境变量")
# 生产环境CORS配置检查在父类中已经设置
if not self.CORS_ORIGINS or self.CORS_ORIGINS == ['']:
raise ValueError("生产环境必须设置CORS_ORIGINS环境变量指定允许的域名")
# 生产环境日志配置
LOG_LEVEL = 'WARNING'
LOG_FILE = 'logs/production.log'
# 生产环境缓存配置
CACHE_TYPE = 'redis'
CACHE_REDIS_URL = os.environ.get('REDIS_URL')
CACHE_DEFAULT_TIMEOUT = 3600 # 1小时
# 生产环境安全配置
WTF_CSRF_ENABLED = True
WTF_CSRF_TIME_LIMIT = 3600
# 生产环境会话配置
SESSION_LIFETIME_HOURS = 168 # 7天
# 生产环境文件上传配置
MAX_CONTENT_LENGTH = 8 * 1024 * 1024 # 8MB
UPLOAD_FOLDER = 'uploads/production'
# 生产环境跨域配置(需要设置具体的域名)
CORS_ORIGINS = os.environ.get('CORS_ORIGINS', '').split(',')
if not CORS_ORIGINS or CORS_ORIGINS == ['']:
# 生产环境必须设置CORS域名
raise ValueError("生产环境必须设置CORS_ORIGINS环境变量指定允许的域名")
# 生产环境性能配置
SQLALCHEMY_ENGINE_OPTIONS = {
'pool_pre_ping': True,
'pool_recycle': 300,
'pool_size': 20,
'max_overflow': 30,
}
@staticmethod
def init_app(app):
Config.init_app(app)
# 生产环境特定初始化
import logging
app.logger.setLevel(logging.WARNING)
# 生产环境错误处理
if not app.debug and not app.testing:
import logging
from logging.handlers import SMTPHandler
# 邮件错误报告(如果配置了邮件服务器)
mail_handler = SMTPHandler(
mailhost=(os.environ.get('MAIL_SERVER', 'localhost'),
int(os.environ.get('MAIL_PORT', 25))),
fromaddr=os.environ.get('MAIL_FROM', 'noreply@example.com'),
toaddrs=os.environ.get('ADMIN_EMAIL', '').split(','),
subject='应用错误报告'
)
mail_handler.setLevel(logging.ERROR)
app.logger.addHandler(mail_handler)
# 获取版本信息
try:
from src.flask_prompt_master import __version__
version_info = f"版本: {__version__}"
except ImportError:
version_info = "版本: 未知"
app.logger.info(f'生产环境启动 - {version_info}')