#python #sqlite #flask #sqlalchemy #flask-sqlalchemy
#python #sqlite #flask #sqlalchemy #flask-sqlalchemy
Вопрос:
Я создал эту модель с помощью Flask-SQLAlchemy и использую ее с sqlite:
app = Flask(__name__)
app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///database.db"
db = SQLAlchemy(app)
class UserModel(db.Model):
__tablename__ = "users"
id = db.Column(db.Integer, primary_key=True)
email = db.Column(db.String, nullable=False)
username = db.Column(db.String, nullable=False, unique=True)
password = db.Column(db.String, nullable=False)
public_id = db.Column(db.String, nullable=False, default=str(uuid.uuid4()).replace("-", ""))
db.create_all()
Однако unique
ключевое слово, похоже, не работает, я создал несколько совершенно новых баз данных с этим кодом, и база данных, похоже, не регистрирует, что имя пользователя должно быть уникальным. Я что-то здесь упускаю?
Ответ №1:
Это работает для меня
sqlite3 database.db
SQLite version 3.28.0 2019-04-15 14:49:49
Enter ".help" for usage hints.
sqlite> INSERT INTO users (id, email, username, password, public_id) VALUES (1, 'a@a.com', 'a@a.com', 'a@a.com', '1');
INSERT INTO users (id, email, username, password, public_id) VALUES (1, 'a@a.com', 'a@a.com', 'a@a.com', '1');
sqlite> INSERT INTO users (id, email, username, password, public_id) VALUES (1, 'a@a.com', 'a@a.com', 'a@a.com', '1');
Error: UNIQUE constraint failed: users.id
sqlite> INSERT INTO users (id, email, username, password, public_id) VALUES (2, 'a@a.com', 'a@a.com', 'a@a.com', '1');
Error: UNIQUE constraint failed: users.username
Я пробовал с Flask 1.1.2 и 2.4.4