Python 使用flask sqlalchemy.exc.IntegrityError:(sqlite3.IntegrityError)唯一约束时出错
我对这个很陌生,我只是在试用烧瓶,我似乎无法用sqlalchemy解决这个问题Python 使用flask sqlalchemy.exc.IntegrityError:(sqlite3.IntegrityError)唯一约束时出错,python,sqlalchemy,Python,Sqlalchemy,我对这个很陌生,我只是在试用烧瓶,我似乎无法用sqlalchemy解决这个问题 sqlalchemy.exc.IntegrityError: (sqlite3.IntegrityError) UNIQUE constraint failed: Login Info.username [SQL: 'INSERT INTO "Login Info" (username, password) VALUES (?, ?)'] [parameters: ('audyappy', 'secret')]
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')
这来自数据库_setup.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)
完全回溯:
回溯(最近一次调用上次):文件
“C:\Users\audri\AppData\Roaming\Python37\site packages\flask\app.py”,
第2309行,在呼叫中
返回self.wsgi\u应用程序(环境,启动\u响应)文件“C:\Users\audri\AppData\Roaming\Python\Python37\site packages\flask\app.py”,
wsgi_应用程序中的第2295行
response=self.handle\u异常(e)文件“C:\Users\audri\AppData\Roaming\Python\Python37\site packages\flask\app.py”,
第1741行,在句柄_异常中
重新播放(exc_类型,exc_值,tb)文件“C:\Users\audri\AppData\Roaming\Python\Python37\site packages\flask_compat.py”,
第35行,重新播放
提升值文件“C:\Users\audri\AppData\Roaming\Python\Python37\site packages\flask\app.py”,
第2292行,在wsgi_应用程序中
response=self.full\u dispatch\u request()文件“C:\Users\audri\AppData\Roaming\Python\Python37\site packages\flask\app.py”,
第1815行,完全发送请求
rv=self.handle\u user\u异常(e)文件“C:\Users\audri\AppData\Roaming\Python\Python37\site packages\flask\app.py”,
第1718行,在handle\u user\u异常中
重新播放(exc_类型,exc_值,tb)文件“C:\Users\audri\AppData\Roaming\Python\Python37\site packages\flask_compat.py”,
第35行,重新播放
提升值文件“C:\Users\audri\AppData\Roaming\Python\Python37\site packages\flask\app.py”,
第1813行,完全发送请求
rv=self.dispatch\u request()文件“C:\Users\audri\AppData\Roaming\Python\Python37\site packages\flask\app.py”,
第1799行,在调度请求中
返回self.view\u functionsrule.endpoint文件“D:\Audric\Work\firstcode\python\FCASIS\AC403(FLASK-SHARED)\deploy
-“实验\项目.py”,第80行,在寄存器中
session.commit()文件“C:\Users\audri\AppData\Roaming\Python\Python37\site packages\sqlalchemy\orm\scoping.py”,
第153行,在do中
返回getattr(self.registry(),name)(*args,**kwargs)文件“C:\Users\audri\AppData\Roaming\Python\Python37\site packages\sqlalchemy\orm\session.py”,
第943行,在提交中
self.transaction.commit()文件“C:\Users\audri\AppData\Roaming\Python\Python37\site packages\sqlalchemy\orm\session.py”,
第467行,在提交中
self.\u prepare\u impl()文件“C:\Users\audri\AppData\Roaming\Python\Python37\site packages\sqlalchemy\orm\session.py”,
第447行,在_prepare _impl中
self.session.flush()文件“C:\Users\audri\AppData\Roaming\Python\Python37\site packages\sqlalchemy\orm\session.py”,
第2254行,齐平
self.\u flush(objects)文件“C:\Users\audri\AppData\Roaming\Python\Python37\site packages\sqlalchemy\orm\session.py”,
第2380行,内平齐
transaction.rollback(\u capture\u exception=True)文件“C:\Users\audri\AppData\Roaming\Python\Python37\site packages\sqlalchemy\util\langhelpers.py”,
第66行,在退出中
重新释放(exc_类型、exc_值、exc_tb)文件“C:\Users\audri\AppData\Roaming\Python\Python37\site packages\sqlalchemy\util\compat.py”,
第249行,重新播放
提升值文件“C:\Users\audri\AppData\Roaming\Python\Python37\site packages\sqlalchemy\orm\session.py”,
第2344行,内平齐
flush\u context.execute()文件“C:\Users\audri\AppData\Roaming\Python37\site packages\sqlalchemy\orm\unitofwork.py”,
第391行,执行中
rec.execute(self)文件“C:\Users\audri\AppData\Roaming\Python37\site packages\sqlalchemy\orm\unitofwork.py”,
执行中的第556行
uow文件“C:\Users\audri\AppData\Roaming\Python\Python37\site packages\sqlalchemy\orm\persistence.py”,
第181行,在save_obj中
映射器,表,插入)文件“C:\Users\audri\AppData\Roaming\Python37\site packages\sqlalchemy\orm\persistence.py”,
第866行,in _emit _insert _语句
执行(语句,参数)文件“C:\Users\audri\AppData\Roaming\Python37\site packages\sqlalchemy\engine\base.py”,
第948行,执行中
返回meth(self、multiparams、params)文件“C:\Users\audri\AppData\Roaming\Python\Python37\site packages\sqlalchemy\sql\elements.py”,
第269行,在连接上执行
返回连接。\u执行\u子句元素(self、multiparams、params)文件
“C:\Users\audri\AppData\Roaming\Python37\site packages\sqlalchemy\engine\base.py”,
第1060行,在_execute _clauseelement中
编译的sql、提取的参数文件“C:\Users\audri\AppData\Roaming\Python\Python37\site packages\sqlalchemy\engine\base.py”,
第1200行,在_执行_上下文中
上下文)文件“C:\Users\audri\AppData\Roaming\Python\Python37\site packages\sqlalchemy\engine\base.py”,
第1413行,在_handle_dbapi_异常中
exc_信息文件“C:\Users\audri\AppData\Roaming\Python\Python37\site packages\sqlalchemy\util\compat.py”,
第265行,从原因提升
重新释放(类型(异常)、异常、tb=exc\U tb、cause=cause)文件“C:\Users\audri\AppData\Roaming\Python\Python37\site packages\sqlalchemy\util\compat.py”,
第248行,重新播放
提升值。使用回溯(tb)文件“C:\Users\audri\AppData\Roaming\Python37\site packages\sqlalchemy\engine\base.py”,
第1193行,在_execute_上下文中
上下文)文件“C:\Users\audri\AppData\Roaming\Python\Python37\site packages\sqlalchemy\engine\default.py”,
第509行,在do_execute中
cursor.execute(语句、参数)sqlalchemy.exc.IntegrityError:(sqlite3.IntegrityError)唯一
约束失败:Login Info.username[SQL:'插入“Login Info”
(用户名、密码)值(?,)][参数:('audyappy',
“secret”)](此错误的背景信息位于:)
我似乎找不到这个问题,所以如果你能帮助我,那就太好了。谢谢 表wh的username列上有一个unicity约束