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가 검증된 방식과 같이 검증될 수 있다.

좋은 웹페이지 즐겨찾기