我有这样定义的视图:

@views.route('/issues')
def show_view():
    action = request.args.get('action')
method = getattr(process_routes, action)
return method(request.args)


在我的process_routes模块中,我想调用此方法,并传递查询字符串值。我有以下代码:

return redirect(url_for('views.show_view', action='create_or_update_success'))


我在process_routes中有一个名为create_or_update_success的函数

我正进入(状态

BuildError: ('views.show_view', {'action': 'create_or_update_success'}, None)


意见是一个蓝图。我可以成功打电话

/issues?action=create_or_update_success


在我的浏览器中。

我究竟做错了什么?

最佳答案

第一部分views.必须准确反映您为Blueprint()对象提供的第一个参数。

不要试图将第一个参数设置为__name__,因为当放在包中时,它可能包含模块的完整路径。在您的情况下,我怀疑是some_package.views而不是views

请为Blueprint()第一个参数使用字符串文字:

views_blueprint = Blueprint('views', __name__)


因此您可以参考url_for('views.show_view')而不会出现构建错误。

09-10 06:05
查看更多