0
from bottle import  route, run, debug, error, request, template

@route('/home')
@route('/home/')
def login():
    return template('templates/login')

@route('/home', method='POST')
@route('/home/', method='POST')
def welocme():
    data = request.POST
    if data:
        password = data.get('password')
        check_pass = 'password'
        if password == check_pass:
            return template('templates/welcome')
        else:
            return template('templates/login')
    else:
        return template('templates/login')

我的要求是:我将在同一个 url 上获得登录和欢迎页面。登录页面只有一个密码字段。

我的问题:如果我登录并在刷新时再次进入欢迎页面,它会将我发送到登录页面。但理想情况下,它应该只在欢迎页面上。

@error(404)
def error404(error):
    return 'http://google.com'

我的第二个问题:我想重定向到 404 上的特定 url。

4

3 回答 3

1

如果用户转到“/home”页面,您不想在显示登录屏幕之前检查他们是否已登录吗?如果 HTTP 方法不是 POST,您似乎假设他们尚未登录。

我对您的框架了解不多,但我假设如果登录成功,您应该设置一个 cookie,然后您应该检查 cookie 中的 HTTP GET 以查看用户是否经过身份验证。

于 2010-11-26T23:13:19.733 回答
1

你的第二个问题在这里得到解答。

您可能还想查看Beaker 的 cookie 会话,并使用它来保持应用程序在请求之间的状态。

于 2011-01-16T16:55:27.080 回答
0

如果我正确理解了这个问题,那么呈现欢迎模板的唯一方法是通过 POST。

您可以更改此设置,以便 GET 请求检查是否有人登录。如果失败,则将他们重定向到登录页面。

于 2010-11-26T23:23:41.433 回答