提交
This commit is contained in:
94
app/__init__.py
Normal file
94
app/__init__.py
Normal file
@@ -0,0 +1,94 @@
|
||||
import os
|
||||
from flask import Flask
|
||||
from flask_sqlalchemy import SQLAlchemy
|
||||
from flask_jwt_extended import JWTManager
|
||||
from flask_pymongo import PyMongo
|
||||
from .config import Config,config_map
|
||||
from flask_cors import CORS
|
||||
import logging
|
||||
from logging.handlers import RotatingFileHandler
|
||||
|
||||
|
||||
db = SQLAlchemy()
|
||||
mongo = PyMongo()
|
||||
jwt = JWTManager()
|
||||
|
||||
# def create_app():
|
||||
# app = Flask(__name__)
|
||||
# app.config.from_object(Config)
|
||||
|
||||
# db.init_app(app)
|
||||
# mongo.init_app(app)
|
||||
# # jwt.init_app(app)
|
||||
|
||||
# # 注册蓝图
|
||||
# from .blueprints.auth import auth_bp
|
||||
# from .blueprints.bag_data.routes import data_bp
|
||||
|
||||
|
||||
# app.register_blueprint(auth_bp, url_prefix='/api/auth')
|
||||
# app.register_blueprint(data_bp, url_prefix='/api/data')
|
||||
|
||||
# return app
|
||||
|
||||
# 加载配置
|
||||
def create_app():
|
||||
app = Flask(__name__)
|
||||
# app.config.from_object(Config)
|
||||
config_name = os.environ.get('FLASK_ENV', 'default')
|
||||
app.config.from_object(config_map[config_name])
|
||||
|
||||
db.init_app(app)
|
||||
mongo.init_app(app)
|
||||
jwt.init_app(app)
|
||||
setup_logging(app) # 配置日志
|
||||
# 注册蓝图
|
||||
from .blueprints.auth.routes import auth_bp
|
||||
from .blueprints.bag_data.routes import data_bp
|
||||
from app.blueprints.data_display.routes import check_data
|
||||
from app.blueprints.data_factory.routes import data_factory_bp
|
||||
from app.blueprints.label_data.rotutes import label_bp
|
||||
from app.blueprints.remote_data.rotutes import remote_bp
|
||||
from app.blueprints.vlm.rotutes import vlm_bp
|
||||
|
||||
app.register_blueprint(auth_bp, url_prefix='/api/auth')
|
||||
app.register_blueprint(data_bp, url_prefix='/api/data')
|
||||
app.register_blueprint(check_data, url_prefix='/api/inspect')
|
||||
app.register_blueprint(data_factory_bp, url_prefix='/api/factory')
|
||||
app.register_blueprint(label_bp, url_prefix='/api/label')
|
||||
app.register_blueprint(remote_bp, url_prefix='/api/remote')
|
||||
app.register_blueprint(vlm_bp, url_prefix='/api/vlm')
|
||||
|
||||
CORS(app, supports_credentials=True)
|
||||
|
||||
return app
|
||||
|
||||
# 配置日志
|
||||
def setup_logging(app):
|
||||
# 确保日志目录存在
|
||||
os.makedirs(app.config['LOG_DIR'], exist_ok=True)
|
||||
|
||||
# 创建文件处理器
|
||||
file_handler = RotatingFileHandler(
|
||||
os.path.join(app.config['LOG_DIR'], 'app.log'),
|
||||
maxBytes=app.config['LOG_FILE_MAX_BYTES'],
|
||||
backupCount=app.config['LOG_FILE_BACKUP_COUNT']
|
||||
)
|
||||
|
||||
# 设置日志级别
|
||||
log_level = getattr(logging, app.config['LOG_LEVEL'])
|
||||
file_handler.setLevel(log_level)
|
||||
app.logger.setLevel(log_level)
|
||||
|
||||
# 设置日志格式
|
||||
formatter = logging.Formatter(
|
||||
'%(asctime)s - %(name)s - %(levelname)s - %(message)s'
|
||||
)
|
||||
file_handler.setFormatter(formatter)
|
||||
|
||||
# 添加处理器
|
||||
if not app.logger.handlers:
|
||||
app.logger.addHandler(file_handler)
|
||||
|
||||
# 记录启动信息
|
||||
app.logger.info(f'Application started with config')
|
||||
Reference in New Issue
Block a user