gpt4 book ai didi

python - 在 before_app_request 中重定向

转载 作者:行者123 更新时间:2023-11-30 23:22:26 26 4
gpt4 key购买 nike

mod = Blueprint('users', __name__, url_prefix='/users')

@mod.route('/welcome')
def www():
return '<h1>Hello</h1>'

@mod.before_app_request
def before_request():
return redirect(url_for('www'))

这段代码给了我这个错误:

  raise BuildError(endpoint, values, method)
BuildError: ('www', {}, None)

如果我尝试这个,我将在浏览器中得到无限循环重定向。

 return redirect(url_for('users.www'))

我的问题是,如何将 before_app_request 重定向到另一个操作?

<小时/>

编辑:更改后记录,现在重定向有效,但错误仍然存​​在。

http://sharetext.org/dDje

最佳答案

按照您设置此蓝图的几乎每个请求的方式,包括一个到 'users.www' 的请求 - 因此无限循环重定向。您需要某种条件,以便它学会不重定向和加载 /welcome 端点。

此外,url_for('www') 将无法按您的预期工作,因为您需要 . 前缀来引用当前蓝图。 Check the documentation for url_for

也许是这样的:

@mod.before_app_request
def before_request():
if request.endpoint != 'users.www':
return redirect(url_for('.www'))

请注意,您可能想要打印出 request.endpoint 并获取确切的端点,我不记得它们是如何在蓝图内部进行 flask 处理/命名的。

引用:flask before request - add exception for specific route

关于python - 在 before_app_request 中重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24500671/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com