我在Flask应用程序中有一个帮助器方法,几个端点使用它来获取资源。为了避免在任何地方进行多次redirect_url
调用,我希望能够从这个辅助方法重定向。如图所示here投掷RequestRedirect
异常会正确返回301
响应,但不会设置Content-Location
错误。为了解决这个问题,我添加了一个after_this_request
钩子来设置该响应的URL。
这似乎工作正常,但我想知道是否有更优雅的方式去做。
匿名辅助方法:
def get_resource(resource_id):
try:
# Some logic
except:
@after_this_request
def add_header(response):
response.headers['Content-Location'] = url
return response
raise RequestRedirect(new_url='/')
答案 0 :(得分:1)
如果它位于您的api之外,通常您会重定向到404页面。这是一个示例:
@app.errorhandler(404)
def page_not_found(e):
return render_template('404.html'), 404