Flask-Restplus 找不到任何路由
Flask-Restplus cannot find any route
我刚开始使用这个库所以如果我说错了请纠正我。
根据我的理解,蓝图是一种命名空间容器。例如,我想指定一个用于处理全局对象(如项目)的蓝图:
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 发送到以下 url
127.0.0.1:5000/global/projects
我会{'num': 42}
可是我只有404,哪里出错了?
您的代码无效 Python 语法(全局关键字作为变量名)
所以,不幸的是,我无法测试它。
但这里有一个类似的工作示例,其中 App
、Blueprints
、Api
和 Namespace
一起工作。
应用程序
# 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
}
我刚开始使用这个库所以如果我说错了请纠正我。
根据我的理解,蓝图是一种命名空间容器。例如,我想指定一个用于处理全局对象(如项目)的蓝图:
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 发送到以下 url
127.0.0.1:5000/global/projects
我会{'num': 42}
可是我只有404,哪里出错了?
您的代码无效 Python 语法(全局关键字作为变量名) 所以,不幸的是,我无法测试它。
但这里有一个类似的工作示例,其中 App
、Blueprints
、Api
和 Namespace
一起工作。
应用程序
# 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
}