【发布时间】:2016-08-28 11:34:49
【问题描述】:
我有这个方法来创建一个随机用户ID:
import random
import string
def generate_id():
size = 9
chars = string.ascii_uppercase + string.ascii_lowercase + string.digits
return ''.join(random.SystemRandom().choice(chars) for _ in range(size))
还有这个用户的 SQLAlchemy 对象:
class User(db.Model, UserMixin):
__tablename__ = 'user'
id = db.Column(db.String, primary_key=True, default=generate_id())
name = db.Column(db.String(255))
# ...
我的问题是:有时它运行良好(有些人设法注册并创建一个新用户没有任何问题),有时为user.id 生成的default 已被使用,触发此错误:
sqlalchemy.exc.IntegrityError: (sqlite3.IntegrityError) UNIQUE constraint failed: user.id
这个错误至少有一半发生。
【问题讨论】:
标签: python flask sqlalchemy flask-login