(9)第9章:wtformチェック

8877 ワード

wfformチェックの変数名は、前段に設定された要素のname属性フィールドです.
from wtforms import Form, StringField, PasswordField

Formクラスを継承する、データを実現するチェックStringFieldはチェックを表すデータが文字列PasswordFieldはチェックを示すパスワードパスワードフィールドであり、入力を自動的に小黒点DateFieldテキストフィールドに変換し、フォーマットはdatetimeである.Dateと同様にIntergerFieldテキストフィールド、フォーマット要件は整数DecimalFieldテキストフィールド、フォーマット要件、decimalである.Decimalと同じFloatFieldテキストフィールド、値は浮動小数点数BooleanFieldチェックボックス、値はTrueまたはFalse RadioFieldのラジオボックスSelectFieldドロップダウンリストのセットで、注意が必要なのはchoicesパラメータがドロップダウンオプションを決定したことですが、HTMLのラベルと同様にtupleからなるリストであり、各tupleの最初の項目がオプションの本当の値であると考えられます.2つ目はaliasですMultipleSelectFieldオプションの複数の値のドロップダウンリスト
from wtforms import Form, StringField, PasswordField
from wtforms.validators import Length, DataRequired, Email, ValidationError, EqualTo
class RegisterForm(Form):
	email = StringField(validators=[
        DataRequired(), Length(8, 64), Email(message='         ')])

    password = PasswordField(validators=[
        DataRequired(message='       ,       '), Length(6, 32)])

    nickname = StringField(validators=[
        DataRequired(), Length(2, 10, message='          ,  10   ')])

	    email      ,                         
	               ,      wtform   ValidationError  
    def validate_email(self, field):
        #   email     first               
        if User.query.filter_by(email=field.data).first():
            raise ValidationError('         ')

    def validate_nickname(self, field):
        if User.query.filter_by(nickname=field.data).first():
            raise ValidationError('     ')

EqualTo(‘password 2’,message=‘2回入力されたパスワードが異なる’)は、現在チェックされているデータがpassword 2パラメータと同じかどうかを示す
class ChangePasswordForm(Form):
    old_password = PasswordField(validators=[DataRequired()])
    new_password1 = PasswordField(validators=[
        DataRequired(), Length(6, 32, message='         6 32     '),
        EqualTo('new_password2', message='          ')])
    # EqualTo              
    new_password2 = PasswordField(validators=[DataRequired(), Length(6, 32)])

Regexpは、validatorsのパラメータでもあり、携帯電話番号をチェックするなど、正規表現を使用できることを示しています.
Regexp('^1[0-9]{10}$', 0, '         ')