瓶子-处理POST数据后重定向

问题描述 投票:0回答:1

我正在使用Bottle来构建一个小型Web应用程序。我有一个简单的登录表格。如果身份验证不成功,我想保留登录表单,否则导航到主页。但是,在处理登录表单的POST的函数中,看起来它只是忽略了重定向:

@route('/')
@view('login.html')
def promotool():
    return {'error': 'none'}

@route('/login', method="POST")
@view('login.html')
def login():
    try:
        if auth_success:
            bottle.redirect('/main_app')
        return {'error': 'LoginError'}
    except:
        return {'error': 'LoginError'}

此后,在服务器日志中,我仅看到POST,但没有看到重定向:

"POST /login HTTP/1.1" 200 4032 

如果我将login.html上的表单定位为/ main_app作为POST目标,那么我将回到第一个方框,因为在这种情况下,为了进行身份验证,我需要重定向到“ /”进行登录错误。

我如何使重定向工作或以其他方式对此进行编码?

python-3.x wsgi bottle
1个回答
0
投票

似乎我错过了文档中的关键信息。wat redirect方法起作用的原因是它引发了一个HTTPResponse作为异常,而我的通用异常处理程序捕获了该异常。因此,我通过将其添加到我的代码中来解决了它:

except bottle.HTTPResponse:
        raise
© www.soinside.com 2019 - 2024. All rights reserved.