sqlalchemy.exc.DataError: (pymysql.err.DataError) (1406, "Data too long for column 'password' at r


def create_user(db: Session, user: UserCreate):
hashed_password= bcrypt.hashpw(user.password.encode('utf-8'), bcrypt.gensalt())
db_user= User(email=user.email, password=hashed_password, lname=user.lname, fname=user.fname)
print('---->', db_user)
db.add(db_user)
db.commit()
return db_user
@app.post('/api/users', response_model= User)
def signup(user_data: UserCreate, db: Session= Depends(get_db)):
user= get_user_by_email(db, user_data.email)
if user:
raise HTTPException(status_code=409,
detail="Email already registered")
signedup_user = create_user(db, user_data)
print("--------->", signedup_user)
return signedup_user

sqlalchemy.exc.DataError:(pymysql.er.DataError((1406,"第1行"password"列的数据太长"([SQL:插入INTO用户(lname,fname,email,password(值(%(lname(s,%(fname(s、%(email(s,%n(password(s(][参数:{'name':'stsdf','fname':'swef','email':'didou@gmail.com','密码':b'$2b$12$nui9RJwoVkU.h6d9ASw6POLZhbn83YrwGKpsNvp.GlnsDa7X4VIqS'}](此错误的背景信息位于:http://sqlalche.me/e/13/9h9h)

包含此错误中涉及的任何代码是一种很好的做法。

但是,这行代码

hashed_password= bcrypt.hashpw(user.password.encode('utf-8'), bcrypt.gensalt())

生成的字符串(哈希(比您的模型所能容纳的长度还要长

您为password属性指定的大小对于该哈希来说不够大。

最新更新