Flask-Restplus找不到任何路线

时间:2018-11-29 21:14:10

标签: flask flask-restplus

我刚刚开始使用该库,所以如果我说错了,请纠正我。

根据我的理解,蓝图是名称空间的一种容器。例如,我想指定一个用于处理全局对象(例如项目)的蓝图:

from flask_restplus import Api
from flask import Blueprint
from app.global.projects import projects

global= Blueprint('global', __name__)

api = Api (global)

api.add_namespace(projects)

我为应用注册了此蓝图:

from app.global import global
app.register_blueprint(global, '/global') #<== prefix

然后我用路由指定一个名称空间:

from flask_restplus import Namespace, Resource, fields

projects = Namespace('projects')

@projects.route('/projects')
class ProjectResource(Resource):
    def post(self):
        return {
            'num': 42
        }

因此,据我了解,如果我将POST发送到以下网址

127.0.0.1:5000/global/projects 

我将有{'num': 42}

但是我只有404个。哪里有错误?

1 个答案:

答案 0 :(得分:1)

您的代码不是有效的Python语法(全局关键字作为变量名) 因此,很遗憾,我无法对其进行测试。

但这是一个类似的工作示例,其中AppBlueprintsApiNamespace一起工作。

应用

# run.py

from flask import Flask
from .api import blueprint

app = Flask(__name__)
app.register_blueprint(blueprint, url_prefix='')
app.run(debug=True)

蓝图

# api.py

from flask import Blueprint
from flask_restplus import Api, Namespace, Resource

blueprint = Blueprint('api', __name__, url_prefix='/api')
api = Api(blueprint)
global_namespace = Namespace('global', path='/global')
api.add_namespace(global_namespace)


@global_namespace.route('/projects')
class ProjectResource(Resource):
    def get(self):
        return {'num': 42}

测试

$ python run.py
$ ...
$  curl http://127.0.0.1:5000/api/global/projects
{
   "num": 42
}