<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 76 WTForms表單驗證基本使用 Flask-WTF是簡化了WTForms操作的一個第三方庫,WTForms表單的兩個主要功能是驗證用戶提交數據的合法性以及渲染模板。當然還包括一些其他的功能:_CSRF保護_,文件上傳等,安裝Flask-WTF默認也會安裝WTForms。 ## 安裝 ```text pip install flask-wtf ``` ### 源碼 ### myapp.py ```text from flask import Flask,request,render_template from wtforms import Form,StringField from wtforms.validators import Length,EqualTo # 繼承Form class RegistForm(Form): # message指定錯誤信息 username = StringField(validators=[Length(min=3,max=10,message="用戶名長度必須在3到10位之間")]) password = StringField(validators=[Length(min=6,max=10)]) # EqualTo指定與之保持相同值的字段 password_repeat = StringField(validators=[Length(min=6,max=10),EqualTo("password")]) app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello World!' @app.route("/regist/",methods=["GET","POST"]) def regist(): if request.method == "GET": return render_template("regist.html") else: form = RegistForm(request.form) if form.validate(): return "success" else: # 打印失敗原因 print(form.errors) return "fail" if __name__ == '__main__': app.run(debug=True) ``` ### regist.html ```text <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>注冊表</title> </head> <body> <form method="POST"> <table> <tbody> <tr> <td>用戶名:</td> <td><input type="text" name="username"/></td> </tr> <tr> <td>密 碼:</td> <td><input type="text" name="password"/></td> </tr> <tr> <td>確認密碼:</td> <td><input type="text" name="password_repeat"/></td> </tr> <tr> <td></td> <td><input type="submit" value="立即注冊"/></td> </tr> </tbody> </table> </form> </body> </html> ``` WTForms庫有兩個作用:第一個就是做表單驗證,把用戶提交上來的數據進行驗證是否合法。第二個就是做模板渲染 ## 表單驗證 1.自定義一個表單類,繼承自wtforms.Form類 ```text 繼承Form class RegistForm(Form): # message指定錯誤信息 username = StringField(validators=[Length(min=3,max=10,message="用戶名長度必須在3到10位之間")]) password = StringField(validators=[Length(min=6,max=10)]) # EqualTo指定與之保持相同值的字段 password_repeat = StringField(validators=[Length(min=6,max=10),EqualTo("password")]) ``` 2.定義需要驗證的字段,字段的名字必須和模板中那些需要驗證的input標簽的那么屬性值保持一致 3.在需要驗證的字段上,需要指定好具體的數據類型 4.在相關的字段上,指定驗證器 5.把表單數據\\(request.form\\)傳遞給RegistForm表單類,如果調用form.validate\\(\\)方法,如果返回True,那么代表用戶輸入的數據都是合法的,否則代表用戶輸入的數據是有問題的。如果驗證失敗了,那么可以通過form.error來獲取具體的錯誤信息。 ```text # request.form:表單信息 form = RegistForm(request.form) if form.validate(): return "success" else: # 打印失敗原因 print(form.errors) return "fail" ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看