为了账号安全,请及时绑定邮箱和手机立即绑定

web.redirect()在web.py中不起作用

web.redirect()在web.py中不起作用

墨色风雨 2021-03-29 21:18:24
我正在使用web.py框架进行项目。如果数据库查询返回的结果为空(或返回的行数为零),我有一个小代码可将用户重定向到其他屏幕。voma_user_details = get_user_by_email(['id','is_active'],None,email)if len(list(voma_user_details)) == 0:    #return redirect_url+'?error=User not found in database'    web.redirect(redirect_url+'?error=User not found in database')      voma_id = int(voma_user_details[0]['id'])在这里,当查询返回零条记录时,页面应被重定向到redirect_url,但是重定向不起作用,并且在下一行引发异常,即列表索引超出范围(因为列表长度为零)。我通过在if块中打印重定向URL进行检查,它进入了该块,但没有重定向页面。任何指针将不胜感激。
查看完整描述

2 回答

?
蛊毒传说

TA贡献1895条经验 获得超3个赞

web.redirect返回一个Redirect对象,该对象是的实例Exception

您应该举起它(或者也可以将其返回),以使重定向发生。

否则,该方法的其余部分仍将执行,这可能会导致不相关的异常(在这种情况下为IndexError,因为您正试图获取空列表的元素)。

如果仅调用,web.redirect则返回的字符串将作为响应内容发送,但响应头仍将包含重定向(使用状态301)。但是浏览器通常会立即遵循301重定向。


查看完整回答
反对 回复 2021-04-06
  • 2 回答
  • 0 关注
  • 145 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信