11
Фев
2018

Изменение значения переменной в базовом шаблоне, jinja2

Необходимо изменить значение переменной login_status в базовом шаблоне, который используется для всех страниц приложения, с помощью python, jinja2. Переменная также имеет значение по умолчанию - "Вход". Если вход в личный кабинет удался, login_status приобретает значение "Выход", если нет - "Вход". Но корректно изменение переменной происходит только на одной странице личного кабинета, а на всех остальных страницах продолжает использоваться значение по умолчанию.

Kак исправить такое положение?

base.html:

<li class="in">{{login_status | default('Вход')}}</li>
 <form name="form_in" method = 'post' action = '/personal_account'>
       <input type="text"  placeholder="Логин" id="log" name="login"/>
       <input type="password"  placeholder="Пароль" id="pass" name="password"/>
       <input type="submit"/>
 </form>

Функция на python:

@app.route('/personal_account', methods=['POST'])
def welcome():
    login = request.form['login']
    password = request.form['password']
    login_status = u'Выйти'
    sidebar_login_status = 'out'
    if not validate_user(login, password):
        login_status = u'Войти'
        sidebar_login_status = 'in'
        return u'Неправильный логин!', login_status, sidebar_login_status

    # добавлено после Edit One
    user = User()
    user.id = login
    login_user(user)
    # .......

    data = get_user_data(login)
    return render_template('private.html',
                           data=data,
                           login_status=login_status,
                           sidebar_login_status=sidebar_login_status)

EDIT ONE

Для сохранения "логинизации" пользователя используется модуль Flask-Login. Класс User() используется как он есть по-умолчанию.

Проблема в том, что юзер то остается залогиненым в течении всей сессии, а мне нужно, чтобы в этом случае менялось значение переменной login_status в базовом html шаблоне.

Источник: https://ru.stackoverflow.com/questions/783387/%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D1%8F-%D0%BF%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D0%BE%D0%B9-%D0%B2-%D0%B1%D0%B0%D0%B7%D0%BE%D0%B2%D0%BE%D0%BC-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B5-jinja2

Тебе может это понравится...

Добавить комментарий