FlaskForm 사용자 정의 유효성 검사 함수
3916 단어 flask-web
@home.route("/register/", methods=["GET", "POST"])
def register():
form = RegisterForm()
if form.validate_on_submit():
data = form.data
user = User(
name=data["name"],
email=data["email"],
phone=data["phone"],
pwd=generate_password_hash(data["pwd"]),
uuid=uuid4().hex
)
db.session.add(user)
db.session.commit()
flash(" ", "ok")
사용자가 등록할 때 어떻게 사용자 이름이나 메일박스가 이미 존재하는지 검증합니까?
FlaskForm에서 사용자 정의 유효성 검사 함수를 사용하여 유효성 검사를 수행할 수 있습니다.
class RegisterForm(FlaskForm):
name = StringField(
label=" ",
validators=[DataRequired(" ")],
description=" ",
render_kw={"class": "form-control input-lg", "placeholder": " !", }
)
pwd = PasswordField(
label=" ",
validators=[DataRequired(" ")],
description=" ",
render_kw={"class": "form-control input-lg", "placeholder": " !", }
)
submit = SubmitField(
label=" ",
render_kw={"class": "btn btn-lg btn-success btn-block"}
)
def validate_name(self, field):
print(" -name")
name = field.data
print(name)
user = User.query.filter_by(name=name).count()
if user == 1:
raise ValidationError(" ")
사용자 정의 유효성 검사 함수를 보려면 다음과 같이 하십시오.
def validate_name(self, field):
print(" -name")
name = field.data
print(name)
user = User.query.filter_by(name=name).count()
if user == 1:
raise ValidationError(" ")
그중에field.데이터는 데이터(field는 여기서form.name와 같다).ValidationError는 wtforms에서 가져와 사용자에게 오류 정보를 표시합니다.사용자가 입력한 사용자 이름이 이미 등록되었을 때, 폼 필드 아래에 우리가 보낸 오류 알림 - 닉네임이 이미 존재합니다!
유효성 검사 함수의 이름은validatefieldname로 구성되어 있으며,fieldname는 위에서 정의한name, 이메일, 아이폰 등입니다.이러한 형식의 사용자 정의 검증 함수는 DataRequired, Email, Regexp가 검증된 방식과 같이 검증될 수 있다.