__init__.py 1.45 KB
Newer Older
chenyuanjie committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
from flask import Flask
from app import routes
from app.config import config
from app.context import db
from app.log import Log
from flask_docs import ApiDoc
from flask_cors import CORS


def create_api_doc(app: Flask):
    """
    https://pypi.org/project/Flask-Docs/

    :param app:
    :return:
    """
    # api 文档地址 /docs/api
    app.config["API_DOC_URL_PREFIX"] = "/docs/api"
    # api bp生效前缀
    app.config["API_DOC_MEMBER"] = [
        "ai_bp",
    ]
    app.config["API_DOC_ENABLE"] = True
    # echo -n admin | shasum -a 256
    # 密码admin
    app.config["API_DOC_PASSWORD_SHA2"] = "8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918"
    ApiDoc(
        app,
        title="亚声威格py_gpt",
        version="1.0.0",
        description="亚声威格ai Api文档",
    )
    pass


# flask run命令会自动调用create_app函数 https://dormousehole.readthedocs.io/en/latest/cli.html
# 通过flask run启动时,可以通过设置FLASK_APP=app:create_app('development')来指定create_app的参数
# /opt/module/anaconda3/envs/pyspark/bin/python3.8 -m flask run
# python -m flask run
def create_app(config_name='default'):
    app = Flask(__name__)
    app.config.from_object(config[config_name])
    config[config_name].init_app(app)
    # 设置全局允许跨域
    CORS(app, supports_credentials=True)

    Log.init_app(app)
    routes.init_app(app)
    db.init_app(app)

    #  创建文档
    create_api_doc(app)
    return app