import sys import os.path from logging.config import dictConfig from flask import Flask from flask.logging import default_handler from flask_cors import CORS sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'src')) from database.mongodb import initialize_db from database.redis import initialize_redis from api.routes import blueprint_api from settings.dev import LOGGING from settings.common import INSTANCE, VERSION from common.utils import make_response # 日志配置 dictConfig(LOGGING) # app 实例,移除默认日志,加载配置文件 app = Flask(__name__) app.logger.removeHandler(default_handler) app.config.from_pyfile("settings/dev.py") # 允许跨域 CORS(app) # 初始化数据库连接 initialize_db(app) initialize_redis(app) # 注册蓝图 app.register_blueprint(blueprint_api) @app.after_request def mark_global_header(resp): """全局 header """ # 标记当前提供服务的实例 resp.headers["Instance"] = INSTANCE return resp @app.route('/info') def app_info(): """返回实例信息,实例版本、实例ID""" return make_response(200, 1000, "success", version=VERSION, instance=INSTANCE) if __name__ == '__main__': app.run(host='0.0.0.0', port=5001, debug=True)