54 lines
1.2 KiB
Python
54 lines
1.2 KiB
Python
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)
|
||
|