WTForms常用的驗證器

來源:互聯網
上載者:User

標籤:int   擷取   src   temp   style   nbsp   連結   format   debug   

 

from wtforms import Form,StringField,IntegerFieldfrom wtforms import validatorsfrom wtforms.validators import Length,EqualTo,Email,InputRequired,NumberRange,    Regexp,URL,UUIDclass RegisterForm(Form):    username = StringField(validators=[Length(max=10,min=3,message=‘使用者名稱長度不正確‘)])    password = StringField(validators=[Length(max=10,min=3,message=‘密碼長度不正確‘)])    password_repeat = StringField(validators=[Length(max=10,min=3,message=‘密碼長度不正確‘),EqualTo(‘password‘)])class LoginForm(Form):    # email = StringField(validators=[Email(message=‘郵箱格式不正確‘)])    # username = StringField(validators=[InputRequired(message=‘必須填寫使用者名稱‘)])#inputrequired必要欄位    # age = IntegerField(validators=[NumberRange(12,100)])#驗證數字在某某區間之內    # phone = StringField(validators=[Regexp(r‘1[85347]\d{9}‘,message=‘手機號碼格式不正確‘)])    # home_page = StringField(validators=[URL()])#必須驗證必須是一個跳轉連結    uuid = StringField(validators=[UUID()])#驗證uuid的
from flask import Flask,request,render_templatefrom forms import RegisterForm,LoginFormapp = Flask(__name__)@app.route(‘/‘)def hello_world():    return ‘Hello World!‘@app.route(‘/register/‘,methods=[‘get‘,‘post‘])def register():    if request.method == ‘GET‘:        return render_template(‘register.html‘)    else:        # username = request.form.get(‘username‘)        # password = request.form.get(‘password‘)        # password_repeat = request.form.get(‘password_repeat‘)        # if 3 > len(username) or len(username)> 10:        #     return ‘使用者名稱長度不正確‘        # if 3 > len(password) or len(password)> 10:        #     return ‘密碼長度不正確‘        # if password != password_repeat:        #     return ‘密碼輸入不一致‘        form = RegisterForm(request.form)        if form.validate():            return ‘success‘        else:            print(form.errors)#{‘username‘: [‘使用者名稱長度不正確‘],            # ‘password‘: [‘密碼長度不正確‘], ‘password_repeat‘: [‘密碼長度不正確‘]}            #因為是字典,擷取方式我就不寫了            return ‘fail‘@app.route(‘/login/‘,methods=[‘get‘,‘post‘])#如果methods沒有post方法,會報狀態代碼405錯誤,# 靜態檔案不允許請求post方法def login():    if request.method == "GET":        return render_template(‘login.html‘)    else:        login_form = LoginForm(request.form)        if login_form.validate():            return ‘success‘        else:            return ‘{errors}‘.format(errors=login_form.errors.get(‘phone‘)[0])#擷取具體錯誤資訊if __name__ == ‘__main__‘:    app.run(debug=True)

 

WTForms常用的驗證器

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.