我想使用 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')
全部documentation我发现这些现在应该可以在 /buildings/<int:id>
上找到。和/jacks/<int:id>
,但这两个 url 都是 404,而我可以访问 /<int:id>
的大楼。 。对 add_resource
中的路径进行硬编码修复了它,但违背了 url_prefix
的要点.
最佳答案
您需要pass the blueprint到 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')
关于python - Flask-Restful 忽略蓝图的 url_prefix,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32488098/