我对这个很陌生,我只是在试用烧瓶,我似乎无法用sqlalchemy解决这个问题
sqlalchemy.exc.IntegrityError: (sqlite3.IntegrityError) UNIQUE constraint
failed: Login Info.username [SQL: 'INSERT INTO "Login Info" (username,
password) VALUES (?, ?)'] [parameters: ('audyappy', 'secret')] (Background on
this error at: http://sqlalche.me/e/gkpj)
从project.py:
@app.route('/register', methods=['GET',"POST"])
def register():
if request.method == "POST":
newUser = Login_Info(username=request.form['username'], password=request.form['password'])
session.add(newUser)
flash('You have registered successfully')
session.commit()
return redirect(url_for('login'))
else:
return render_template('register.html')
这是从数据库_设置。py:
class Login_Info(Base):
__tablename__ = 'Login Info'
id = Column(Integer, primary_key=True)
username = Column(String, nullable=False, unique=True)
password = Column(String, nullable=False)
完全回溯:
我似乎找不到这个问题,所以如果你能帮助我,那就太好了。谢谢
您在试图插入数据的表的username列上有一个unicity约束:username=column(String,nullable=False,unique=True)
您试图插入的用户名值已经在该表中。尝试删除有问题的记录并重新运行插入或使用不同的值运行插入。
从您的输出来看,这似乎是导致问题的原因。
“D:\Audric\Work\firstcode\python\FCASIS\AC403(FLASK-SHARED)\deploy-experimental\project.py”,第80行,在注册会话中。提交()文件
会议结束了。commit()可能无法将数据提交到数据库。我认为您没有正确设置数据库。由于您使用的是Flask,我建议您使用Flask SQLAlchemy,这使得在Flask应用程序上使用SQLAlchemy更加容易。
看看这个关于这个主题的很棒的教程。https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-iv-database .
希望这有帮助。