def create_app(config):
"""
创建app
"""
# 添加配置
app.config.from_object(config)
# 解决跨域
app.after_request(_access_control)
# 自定义abort 400 响应数据格式
flask_restful.abort = _custom_abort
# 数据库初始化
db.init_app(app)
# 注册蓝图
from routes import api_v1
app.register_blueprint(api_v1, url_prefix='/api/v1')
# 使用flask原生异常处理程序
app.handle_exception = handle_exception
app.handle_user_exception = handle_user_exception
return app
def register_exts(app: Flask):
# flask-sqlalchemy
db.init_app(app)
# flask-login
login = LoginManager(app)
login.login_message = None
login.login_view = 'admin.login'
login.user_loader(lambda user_id: get_user(user_id))
# exts.library
from . import library
LibraryManager(app, library)
# exts.message
Message(app)