標籤: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常用的驗證器