Python googleappengine中的异常处理
我正在使用Python googleappengine中的异常处理,python,google-app-engine,exception-handling,Python,Google App Engine,Exception Handling,我正在使用 if UserId == '' and Password == '': raise Exception.MyException , "wrong userId or password" 但我想在同一页上打印错误消息 class MyException(Exception): def __init__(self,msg): Exception.__init__(self,msg) 你不是在用电脑吗?假设您正在处理POST请求,那么: class L
if UserId == '' and Password == '':
raise Exception.MyException , "wrong userId or password"
但我想在同一页上打印错误消息
class MyException(Exception):
def __init__(self,msg):
Exception.__init__(self,msg)
你不是在用电脑吗?假设您正在处理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之后重定向是一个好习惯,因此是重定向。)您没有使用?假设您正在处理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之后重定向是一个好习惯,因此是重定向。)为什么引发异常而不是仅仅停止函数执行并使用return语句重定向到新页面为什么引发异常而不是仅仅停止函数执行并使用return语句重定向到新页面只需将err\u reason变量传递到模板(更新了示例代码)。只需将err_reason变量传递给模板(更新了示例代码)。