Flask Restplus-在服务器上找不到请求的URL

时间:2019-08-16 09:48:23

标签: python flask blueprint flask-restplus

我有一个flask应用程序,并且我正在尝试使用flask-restplus和蓝图。不幸的是,我的api端点始终返回在服务器上找不到请求的URL。。即使我看到它存在于app.url_map的输出中。 该项目的布局如下:

- app.py
- api
   - __init__.py
   - resources.py

app.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。任何帮助表示感谢,谢谢!

1 个答案:

答案 0 :(得分:0)

Flask-RESTPlus提供了一种使用与Flask蓝图几乎相同的模式的方法。主要思想是将您的应用拆分为可重用的命名空间。

您可以这样操作:

app.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 / init .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