问题
我是Flask和后端的初学者,我真的不知道任何SQL。
我一直在Youtube上放一个关于创建 flask 应用程序的教程,当我尝试添加广告管理员用户时,我遇到了一个错误。我试图重新创建一个基本的应用程序,并试图缩小问题,只创建管理模型,并试图把东西放进去,它显示了同样的错误。
我的APP
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret'
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///test.db'
db = SQLAlchemy(app)
class Admin(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(20), nullable=False)
password = db.Column(db.String(20), nullable=False)
def __repr__(self):
return f"Admin('{self.username}', '{self.password}')"
@app.route('/')
def hello_world():
admin = Admin(username='Justas', password='test')
db.session.add(admin)
db.session.commit() # Error at here
return 'Hello, World!'
if __name__ == '__main__':
app.run(debug=True)
错误
这显示在终端当我尝试运行它python app.py
Traceback (most recent call last):
File "C:\Users\Sarunas\Desktop\test APP\my_app\env\Lib\site-packages\sqlalchemy\engine\base.py", line 1283, in _execute_context
self.dialect.do_execute(
File "C:\Users\Sarunas\Desktop\test APP\my_app\env\Lib\site-packages\sqlalchemy\engine\default.py", line 590, in do_execute
cursor.execute(statement, parameters)
sqlite3.IntegrityError: UNIQUE constraint failed: admin.username
The above exception was the direct cause of the following exception:
...
sqlalchemy.exc.IntegrityError: (sqlite3.IntegrityError) UNIQUE constraint failed: admin.username
[SQL: INSERT INTO admin (username, password) VALUES (?, ?)]
[parameters: ('Justas', 'test')]
(Background on this error at: http://sqlalche.me/e/gkpj)
1条答案
按热度按时间krcsximq1#
错误消息表明您正在尝试创建一个已经存在的管理员。您可以通过在创建新管理员之前添加检查来避免此问题;
请用上面的代码测试一下。