В настоящее время я занимаюсь созданием приложения для чата по локальной сети на основе flask (использую sqlite3 для хранения имен пользователей и Socketio для обмена сообщениями), и у меня возникли проблемы с правильной реализацией сеансов.
Я следовал обоим этим руководствам:
https://www.techwithtim.net/tutorials/flask/sessions/
и прочитал документацию здесь https://flask-session.readthedocs.io/en/latest/, но мой код почему-то все еще не работает:
На странице входа в систему, когда публикуется имя пользователя, я хочу, чтобы пользователи перенаправлялись на Chat-page.html, но этого не происходит. Вместо этого они перенаправляются на страницу входа, и я не могу понять почему:
from flask import Flask, render_template, request, flash, session, redirect, url_for
#creating the routes
@app.route('/login', methods=["POST", "GET"])
def login_form():
if request.method == "POST":
username = request.form.get("user_name")
session["user"] = username
return redirect(url_for('chat_page'))
else:
if "user" in session:
return redirect(url_for('chat_page'))
return render_template('login.html')
@app.route('/chat-page')
def chat_page():
if "user" in session:
username = session["user"]
return render_template('chat-page.html', Uname=username)
return redirect(url_for('login_form'))
@app.route("/logout")
def logout():
session.pop("user", None)
flash("You have been logged out!")
return redirect(url_for('login_form'))
from flask_session import Session
app = Flask(__name__)
Session(app)
Подробнее здесь: https://stackoverflow.com/questions/709 ... login-page