我使用
提出异常if UserId == '' and Password == '':
raise Exception.MyException , "wrong userId or password"
但我想在同一页上打印错误信息
class MyException(Exception):
def __init__(self,msg):
Exception.__init__(self,msg)
答案 0 :(得分:1)
您没有使用Users API?假设您正在处理POST请求,请执行以下操作:
class LoginError(Exception):
CODES = { 'mismatch': 'Wrong credentials', 'disabled': 'Account disabled' }
...
try:
// your authentication code
raise LoginError('mismatch')
...
raise LoginError('disabled')
except LoginError as e:
self.redirect(your_login_url + '?err=' + e)
# In login page you must not print arbitrary GET parameter directly
err_reason = LoginError.CODES[self.request.get('err')]`
(登录请求应该使用POST方法,因为它改变了服务器的状态,并且在POST之后重定向是一个好习惯,因此是重定向。)
答案 1 :(得分:0)
为什么提出异常而不是仅使用return语句停止函数执行并重定向到新页面