__init__.py 2.34 KB
Newer Older
wanli's avatar
wanli committed
1 2 3 4 5 6 7 8
'''
Author: your name
Date: 2021-04-14 14:12:18
LastEditTime: 2021-06-29 19:37:32
LastEditors: Please set LastEditors
Description: In User Settings Edit
FilePath: \evm-store\backend\view\__init__.py
'''
wanli's avatar
wanli committed
9 10 11 12 13 14 15 16 17 18 19 20 21 22
#!/usr/bin/env python
# -*- coding: utf_8 -*-

import logging
import traceback
from flask import Flask, Response, jsonify
from flask_cors import CORS
from werkzeug.exceptions import HTTPException, InternalServerError
from .api import api
from .files import file_api
from .login import login_api
from .user import user_api
from .annex import annex_api
from .apps import apps_api
wanli's avatar
wanli committed
23
from .device import device_api
wanli's avatar
wanli committed
24
from .download import download_api
wanli's avatar
wanli committed
25
from .app_logs import appLogs_api
wanli's avatar
wanli committed
26 27
from model import fullStackDB
from fullstack.response import ResponseCode, response_result
28
from app import config
wanli's avatar
wanli committed
29

wanli's avatar
wanli committed
30
logger = logging.getLogger(__name__)
wanli's avatar
wanli committed
31 32 33 34 35 36

class JsonResponse(Response):
    @classmethod
    def force_type(cls, response, environ=None):
        if isinstance(response, (list, dict)):
            response = jsonify(response)
wanli's avatar
wanli committed
37
        return super(cls, Response).force_type(response, environ)
wanli's avatar
wanli committed
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52

class FlaskAPP(Flask):
    response_class = JsonResponse

    def unauthorized(self, message):
        return response_result(ResponseCode.AUTHORIZATION_ERROR, msg=message)

def create_app():
    app = FlaskAPP(__name__)
    app.register_blueprint(api)
    app.register_blueprint(login_api)
    app.register_blueprint(file_api)
    app.register_blueprint(user_api)
    app.register_blueprint(annex_api)
    app.register_blueprint(apps_api)
wanli's avatar
wanli committed
53
    app.register_blueprint(download_api)
wanli's avatar
wanli committed
54
    app.register_blueprint(device_api)
wanli's avatar
wanli committed
55
    app.register_blueprint(appLogs_api)
wanli's avatar
wanli committed
56 57 58 59 60 61 62

    @app.errorhandler(InternalServerError)
    def handle_500(e):
        logger.error(str(e))
        traceback.print_exc()
        return response_result(ResponseCode.SERVER_ERROR, msg=str(e))

wanli's avatar
wanli committed
63 64 65 66 67 68
    @app.errorhandler(HTTPException)
    def handle_http_exception(e):
        logger.error(str(e))
        traceback.print_exc()
        return response_result(ResponseCode.SERVER_ERROR, msg=str(e))

wanli's avatar
wanli committed
69 70 71 72 73 74 75 76 77 78 79 80 81
    @app.errorhandler(Exception)
    def handle_exception(e):
        logger.error(str(e))
        traceback.print_exc()
        return response_result(ResponseCode.SERVER_ERROR, msg=str(e))

    CORS(app, supports_credentials=True, origins='*')
    app.config.update(config)
    fullStackDB(app, drop_tables=[])

    return app

app = create_app()