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

學(xué)無(wú)先后,達(dá)者為師

網(wǎng)站首頁(yè) 編程語(yǔ)言 正文

關(guān)于Flask高級(jí)_WTForms介紹和基本使用

作者:NewBurlaSKing 更新時(shí)間: 2022-08-30 編程語(yǔ)言

Flask高級(jí)_WTForms介紹和基本使用

一.介紹

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

二.實(shí)例

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>注冊(cè)頁(yè)面</title>
</head>
<body>
    <form action="/register/" method="post">
        <table>
                <tr>
                    <th>用戶(hù)名:</th>
                    <td><input type="text"name="uname"></td>
                </tr>
                <tr>
                    <th>密碼:</th>
                    <td><input type="password"name="pwd"></td>
                </tr>
                <tr>
                    <th>確認(rèn)密碼:</th>
                    <td><input type="password"name="pwd2"></td>
                </tr>
                <tr>
                    <td></td>
                    <td><input type="submit"value="注冊(cè)"></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='用戶(hù)名的字符數(shù)量在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 '驗(yàn)證成功!!!'
        return f'驗(yàn)證失敗!!!失敗信息:{form.errors}'

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

注:

如果覺(jué)得筆記有些問(wèn)題,麻煩在百忙之中在評(píng)論中指正,或提出建議!另外,如果覺(jué)得這份筆記對(duì)你有所幫助,麻煩動(dòng)動(dòng)發(fā)財(cái)?shù)男∈质贮c(diǎn)一波贊!

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

欄目分類(lèi)
最近更新