python - 我的自定义烧瓶 ValidationError 不起作用
问题描述
表格.py
class RegistrationForm(FlaskForm):
username=StringField('Username',validators=[DataRequired(),Length(min=2,max=20)])
email=StringField('Email',validators=[DataRequired(),Length(min=2,max=20),Email()])
password=PasswordField('Password',validators=[DataRequired(),Length(min=8,max=20)])
confirm_password=PasswordField('Confirm Password',validators=
[DataRequired(),Length(min=8,max=20),EqualTo('password')])
submit=SubmitField('SignUp')
def valiate_username(self,username):
user=User.query.filter_by(username=username).first()
if user:
raise ValidationError('Username Exists')
def valiate_email(self,email):
user=User.query.filter_by(email=email).first()
if user:
raise ValidationError('Email exists, please Login or Click forgot password If you forgot')
路线.py
@app.route("/register", methods=['GET','POST'])
def register():
form=RegistrationForm()
if form.validate_on_submit():
hpasskey=bcrypt.generate_password_hash(form.password.data).decode('utf-8')
user=User(username=form.username.data,email=form.email.data,password=hpasskey)
db.session.add(user)
db.session.commit()
flash(f'Account Created for {form.username.data}!','success')
return redirect(url_for('login'))
return render_template('register.html', title='Register', form=form)
退货
sqlalchemy.exc.IntegrityError
sqlalchemy.exc.IntegrityError: (sqlite3.IntegrityError) 唯一约束失败:user.username [SQL: INSERT INTO user (username, email, image_file, password) VALUES (?, ?, ?, ?)] [参数: ('Kelvinasdhe ', 'achiampon@gmail.com', 'default.jpg', '$2b$12$NusydBknOBkgkq60FJIyO.fsgIPnlk3HhB5n9kLAdczt4jvUtViiy')] (此错误的背景:http ://sqlalche.me/e/gkpj )
解决方案
有一个错字:valiate_username
应该是validate_username
(与电子邮件相同)
而 invalidate_username
username
是一个字段。要获得估算的值,您必须使用username.data
:
user=User.query.filter_by(username=username.data).first()
推荐阅读
- scala - 任务在 Databricks 上的 Scala 中不可序列化
- node.js - Multer 图像上传失败抛出 TypeError: Converting circular structure to JSON
- node.js - Redis 节点设置的最佳实践
- https - 如何在 Postman 中查看“发送请求时计算的”标头
- ssl - SSL 证书不适用于路径参数
- bash - 如何将 cut -c 命令的输出存储到 shell 脚本中的变量中
- wordpress - 如何在wordpress的特定表中存储用户名和id
- typescript - 基于参数类获取实例的打字稿定义函数?
- javascript - ParseError when using Nested Cloud Code functions with Promises
- azure-active-directory - Azure AD 将 Id 令牌交换为查询字符串中的访问令牌