Ich erstelle ein Anmeldesystem für ein Projekt, das ich erstelle. Ich habe derzeit bereits ein Registrierungssystem sowie ein Login-System, das einen registrierten Benutzer protokolliert. Die nächste Sache, die ich versuche, ist, den Benutzernamen zu erhalten, mit dem er sich angemeldet hat, und ihn in der Sitzung zu speichern, damit er auf die Website und ihre Funktionen zugreifen kann.Fehler bei der Integration von Sitzungen in meine Flask-App
Sobald der Benutzer sich mit den richtigen Anmeldeinformationen angemeldet hat, möchte ich den Benutzernamen des Benutzers in der Sitzung speichern und sie auf der Hauptseite der Webanwendung wiederherstellen.
Jetzt bekomme ich den Fehler wie folgt:
Session object does not support item assignment
und ich kann keine funktionierende Lösung, wie finden, dieses Problem zu beheben Im Folgenden wird der gesamte Code, den ich in meinem Python-Datei, die ist Relevant für diesen Fehler:
Bevor Sie den Code lesen. Ich habe einen geheimen Schlüssel, aber ich werde ihn hier nicht posten. Die Anmeldung funktioniert ordnungsgemäß ohne die Sitzungszeile in Richtung der unteren Zeile der Route.
from flask import Flask, render_template, request, redirect, url_for, flash
from flask import escape, session
from datetime import datetime
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
DBSession = sessionmaker(bind = engine)
session = DBSession()
@app.route('/login', methods=['get', 'POST'])
def LogIn():
if request.method == 'POST':
username = request.form['username']
password = request.form['password']
user = session.query(Users).filter_by(Username = username).first()
if user == None:
flash('The Username does not match any records')
return render_template('Login.html')
elif password != user.Password:
flash('The username/password does not match any record')
return render_template('Login.html')
else:
flash('Successfully Loged In')
session['username'] = request.form['username']
return redirect(url_for('HomePage'))
Auf Welche Codezeile wird, dass Fehler msg erzeugt? –
Sekunde von der letzten Zeile. Ohne die Linie bekomme ich keinen Fehler. Sobald ich diese Zeile hinzufügen, erhalte ich den Fehler –