Chr*_*ris 1 python flask flask-restful
我想使用Flask蓝图将Flask-Restful资源组织到单独的url前缀中。无论我设置了什么url前缀(在创建蓝图或注册期间),所有内容都会映射到原始路由路径。如何正确地将Restful与蓝图一起使用?
app = Flask(__name__)
api = Api(app)
api.add_resource(Building, '/<int:id>', endpoint='building')
api.add_resource(Jack, '/<int:id>', endpoint='jack')
building_api = Blueprint('building_api', __name__)
jack_api = Blueprint('jack_api', __name__)
app.register_blueprint(building_api, url_prefix='/buildings')
app.register_blueprint(jack_api, url_prefix='/jacks')
Run Code Online (Sandbox Code Playgroud)
我可以找到的所有文档都说现在应该在/buildings/<int:id>
和提供这些文件/jacks/<int:id>
,但是这两个URL 404都可以在上访问/<int:id>
。对路径进行硬编码add_resource
可解决此问题,但失败了url_prefix
。
您需要将蓝图传递给Api
实例,而不是应用程序。
building_bp = Blueprint('buildings', __name__)
building_api = Api(building_bp)
building_api.add_resource(Building, '/<int:id>')
app.register_blueprint(building_bp, url_prefix='/buildings')
Run Code Online (Sandbox Code Playgroud)