Я пишу небольшое приложение в бутылке. У меня есть некоторая концептуальная проблема, помогите мне решить это

StackOverflow https://stackoverflow.com/questions/4289115

  •  28-09-2019
  •  | 
  •  

Вопрос

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'

Моя вторая проблема: я хочу перенаправить на определенном URL на 404.

Это было полезно?

Решение

Если пользователь переходит на страницу «/ Home», вы не хотите проверить, записываются ли они, прежде чем отображать их экран входа в систему? Похоже, что вы предполагаете, что они еще не вошли в систему, если метод HTTP не является опубликом.

Я много знаю о ваших рамках, но я предполагаю, что если логин успешен, вы должны установить файл cookie, а затем вы должны проверить файл cookie для http, чтобы увидеть, будет ли пользователь аутентифицирован.

Другие советы

Ваш второй вопрос отвечает здесь.

Вы могли бы также захотеть взглянуть на Сеансы печенья Beaker и использовать это, чтобы сохранить состояние вашей заявки между запросами.

Если я правильно понимаю вопрос, единственный способ добраться до того, чтобы сделать шаблон приветствия - через пост.

Вы можете изменить это, чтобы получить запросы, проверьте, будет ли кто-то войти в систему. Если это не удается, перенаправьте их на страницу входа в систему.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top