我正在使用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重定向。
添加回答
举报
0/150
提交
取消