日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

關于Flask高級_WTForms介紹和基本使用

作者:NewBurlaSKing 更新時間: 2022-08-30 編程語言

Flask高級_WTForms介紹和基本使用

一.介紹

Flask-WTF是簡化了WTForms操作的一個第三方庫。WTForms表單 的兩個主要功能是驗證用戶提交數據的合法性以及渲染模板。而 Flask-WTF還包括一些其他的功能:CSRF保護,文件上傳等。
這個插件庫主要有兩個作用:
第一個是做表單驗證,將用戶提交上來的數據進行驗證是否符合系 統要求。
第二個是做模版渲染。 (了解即可)
使用步驟:
  1. 自定義一個表單類,繼承自wtforms.Form類。
  2. 定義好需要驗證的字段,字段的名字必須和模版中那些需要驗證的input標簽的name屬性值保持一 致。
  3. 在需要驗證的字段上,需要指定好具體的數據類型。
  4. 在相關的字段上,指定驗證器。
  5. 以后在視圖函數中,只需要使用這個表單類的對象,并且把需要驗證的數據,也就是request.form 傳給這個表單類,再調用表單類對象.validate()方法進行,如果返回True,那么代表用戶輸入的數 據都是符合格式要求的,Flase則代表用戶輸入的數據是有問題的。如果驗證失敗了,那么可以通 過表單類對象.errors來獲取具體的錯誤信息。

二.實例

html:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>注冊頁面</title>
</head>
<body>
    <form action="/register/" method="post">
        <table>
                <tr>
                    <th>用戶名:</th>
                    <td><input type="text"name="uname"></td>
                </tr>
                <tr>
                    <th>密碼:</th>
                    <td><input type="password"name="pwd"></td>
                </tr>
                <tr>
                    <th>確認密碼:</th>
                    <td><input type="password"name="pwd2"></td>
                </tr>
                <tr>
                    <td></td>
                    <td><input type="submit"value="注冊"></td>
                </tr>
        </table>
    </form>
</body>
</html>
py文件:
#coding=utf-8


from flask import Flask,request,render_template
from wtforms import Form,StringField
from wtforms.validators import Length,EqualTo

app = Flask(__name__)

@app.route('/')
def index():
    return 'Hello~'

class registerForm(Form):
    uname = StringField(validators=[Length(min=2,max=9,message='用戶名的字符數量在1-9之間')])
    pwd = StringField(validators=[Length(min=2,max=9)])
    pwd2 = StringField(validators=[Length(min=2,max=9),EqualTo('pwd',message='兩次輸入的密碼不一致!!!')])

@app.route('/register/',methods=['GET','POST'])
def register():
    if request.method == 'GET':
        return render_template('register.html')
    else:
        form = registerForm(request.form)
        if form.validate():
            return '驗證成功?。?!'
        return f'驗證失?。。?!失敗信息:{form.errors}'

if __name__ == '__main__':
    app.run(debug=True)

注:

如果覺得筆記有些問題,麻煩在百忙之中在評論中指正,或提出建議!另外,如果覺得這份筆記對你有所幫助,麻煩動動發財的小手手點一波贊!

原文鏈接:https://blog.csdn.net/qq_55961861/article/details/126593398

欄目分類
最近更新