python - Flask Restplus - 在服务器上找不到请求的 URL
问题描述
我有一个烧瓶应用程序,我正在尝试使用烧瓶-restplus 和蓝图。不幸的是,我的 api 端点总是返回The requested URL was not found 在服务器上。即使我可以看到它存在于app.url_map
. 该项目布置如下:
- app.py
- api
- __init__.py
- resources.py
应用程序.py
from api import api, api_blueprint
from api.resources import EventListResource, EventResource
app = Flask(__name__)
app.register_blueprint(api_blueprint)
db.init_app(flask_app)
app.run()
api/__init__.py
from flask_restplus import Api
from flask import Blueprint
api_blueprint = Blueprint("api_blueprint", __name__, url_prefix='/api')
api = Api(api_blueprint)
api/resources.py
from flask_restplus import Resource
from flask import Blueprint
from . import api, api_blueprint
@api_blueprint.route('/events')
class EventListResource(Resource):
def get(self):
"stuff"
return items
def post(self):
"stuff"
db.session.commit()
return event, 201
应用程序启动时没有问题,我可以看到它'/api/events'
出现了,app.url_map
所以我不太确定为什么找不到 url。任何帮助表示赞赏,谢谢!
解决方案
Flask-RESTPlus 提供了一种使用几乎与 Flask 蓝图相同的模式的方法。主要思想是将您的应用程序拆分为可重用的命名空间。
你可以这样做:
应用程序.py
from flask_restplus import Api
from api import api_namespace
app = Flask(__name__)
api = Api(app)
db.init_app(flask_app)
from api import api_namespace
api.add_namespace(api_namespace, path='/api')
app.run()
api/初始化.py
from flask_restplus import Namespace
api_namespace = Namespace('api_namespace')
api/resources.py
from flask_restplus import Resource
from api import api_namespace
@api_namespace.route('/events')
class EventListResource(Resource):
def get(self):
"stuff"
return items
def post(self):
"stuff"
db.session.commit()
这是文档的链接: https ://flask-restplus.readthedocs.io/en/stable/scaling.html
推荐阅读
- python - AES 解密 API 不接受 str 参数
- python - `_csv.Error: line contains NUL` 从下载的 csv
- python - 对没有 sleep() 的代码使用异步是否有意义?
- elasticsearch - 如何在 Elasticsearch 中将高度信息存储为浮点数
- r - R中的for循环和数据库
- http - 错误地使用 HTTP 方法
- python - 检查我是否从 Pycharm 控制台运行
- java - 我需要 Java 自定义自动装箱
- git - Spring Initializr .gitignore 意图(或理解意图)
- c# - “选择”的定义在 CSharpScript.EvaluateAsync 中不起作用