【发布时间】:2017-01-05 18:29:37
【问题描述】:
我正在为我正在构建的项目构建登录系统。我目前已经有一个注册系统以及一个可以记录注册用户的登录系统。我要做的下一件事是获取他登录时使用的用户名并将其保存在会话中,以便他们可以访问该网站及其功能。
一旦用户使用正确的凭据登录,我想将用户名保存在会话中并将他们重定向到 Web 应用程序的主页。
现在我收到如下错误:
Session object does not support item assignment
我找不到任何关于如何解决此问题的有效解决方案 以下是我的 python 文件中与此错误相关的所有代码:
在阅读代码之前。我确实有一个密钥,但我不会在这里发布它。 登录确实可以正常工作,而会话线没有朝向下面的路线底部。
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'))
【问题讨论】:
-
错误信息是在哪一行代码生成的?
-
倒数第二行。没有这条线,我不会出错。一旦我添加该行,我就会收到错误