vic*_*.py 5 flask swagger-ui flask-restful
我正在构建一个 API,使用 Flask、flask-restful 和 flask-swagger-ui。我现在已经修改了项目结构,现在我无法再访问项目的 swagger.json 文件。
根据包文档flask-swagger-ui,您只需要将参数 API_URL 更改为正确的路径。但即使输入相对路径或完整路径,我也无法再访问该文件。
我的代码:
from flask import Flask, jsonify
from flask_migrate import Migrate
from flask_restful import Api
from flask_swagger_ui import get_swaggerui_blueprint
def create_app(config_name):
app = Flask(__name__)
app.config.from_object(config[config_name])
api = Api(app, prefix="/api/v1")
'''swagger specific'''
SWAGGER_URL = '/api/v1/docs'
# API_URL = 'templates/swagger.json'
API_URL = 'app/templates/docs/swagger.json'
SWAGGERUI_BLUEPRINT = get_swaggerui_blueprint(
SWAGGER_URL,
API_URL,
config={
'app_name': "My Rest App"
}
)
app.register_blueprint(SWAGGERUI_BLUEPRINT, url_prefix=SWAGGER_URL)
db.init_app(app)
Migrate(app, db)
return app
Run Code Online (Sandbox Code Playgroud)
我的树结构:
??? API
? ??? app
? ? ??? __init__.py
? ? ??? models
? ? ? ??? __init__.py
? ? ? ??? db.py
? ? ? ??? db2.py
? ? ??? routes
? ? ? ??? __init__.py
? ? ? ??? resources.py
? ? ??? templates
? ? ??? docs
? ? ??? swagger.json
? ??? app.db
? ??? config.py
? ??? main.py
? ??? migrations
? ??? requeriments
? ??? tests
??? README.md
Run Code Online (Sandbox Code Playgroud)
我需要帮助,以了解文件路径的问题,从而纠正问题。
我相信这是对 Flask 端的限制,但似乎您必须static/将静态文件放置在Flask 应用程序根目录下明确命名的文件夹中。
尝试改变
API_URL = 'app/templates/docs/swagger.json'
Run Code Online (Sandbox Code Playgroud)
到
API_URL = '/static/swagger.json'
Run Code Online (Sandbox Code Playgroud)
static/然后在 中创建一个文件夹API/app/,并将 json 移入其中。就像这样:API/app/static/swagger.json
如果这不起作用,请确保该static/文件夹位于正确的目录中,print(app.root_path)在定义 Flask 应用程序变量后尝试,以查看 Flask 认为根路径是什么。
| 归档时间: |
|
| 查看次数: |
2889 次 |
| 最近记录: |