flask: logout пользователя python
Как сделать правильный выход из аккаунта пользователя? Код для входа в аккаунт работает, но я должен каждый раз вводить логин и пароль, чтобы войти в свой профиль. как сделать так, чтобы при открытии сайта я уже был на своем аккаунте, и реализовать выход?
Вот код:
@app.route('/', methods=['GET', 'POST'])
def login():
if request.method == 'GET' and 'loggedin' in session:
return redirect(url_for('profile'))
elif request.method == 'POST':
email = request.form['email']
password = request.form['password']
cur = mysql.connection.cursor()
cur.execute('SELECT * FROM users.data WHERE email = %s AND password = %s',
(email, password))
account = cur.fetchone()
if account:
session['loggedin'] = True
session['id'] = account[0]
session['firstname'] = account[1]
session['email'] = account[3]
return redirect(url_for('profile'))
else:
return render_template('error.html')
return render_template('login.html')
#profile метод
@app.route('/profile', methods=['GET'])
def profile():
if request.method == 'GET' and 'loggedin' in session:
cur = mysql.connection.cursor()
cur.execute("SELECT firstname, lastname, email FROM users.data WHERE description = 'description'")
account = cur.fetchall()
description = account
return render_template('profile.html', id=session['id'], firstname=session['firstname],email=session['email'], description=description)
#logout метод
@app.route('/logout')
def logout():
if session.pop('email', None):
print('Logout successfully!')
return redirect(url_for('login'))
profile.html
<h2 class="white-text">Welcome, {{ firstname }}</h2>
{% if session.email %}
<button class="btn btn-primary">
<a href="{{ url_for('logout') }}">
Logout
</a>
</button>
{% endif %}
Когда я нажимаю на logout, то получаю ошибку KeyError: 'firstname'. В чем ошибка?