日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)Python教程:三分鐘看懂Flask第三方庫WTForms

Web應(yīng)用程序的一個重要方面是為用戶提供一個用戶界面。 HTML提供了一個

標(biāo)簽,用于設(shè)計一個接口。 可以適當(dāng)使用表單的元素,如文本輸入,廣播,選擇等。通過GET或POST方法將用戶輸入的數(shù)據(jù)以Http請求消息的形式提交給服務(wù)器端腳本。

在含山等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都做網(wǎng)站、成都網(wǎng)站建設(shè) 網(wǎng)站設(shè)計制作定制制作,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),成都營銷網(wǎng)站建設(shè),成都外貿(mào)網(wǎng)站建設(shè),含山網(wǎng)站建設(shè)費用合理。

服務(wù)器端腳本必須從http請求數(shù)據(jù)重新創(chuàng)建表單元素。 所以實際上,表單元素必須被定義兩次 - 一次是HTML,一次是服務(wù)器端腳本。使用HTML表單的另一個缺點是很難(如果不是不可能)動態(tài)地呈現(xiàn)表單元素。 HTML本身無法驗證用戶的輸入。

這就是WTForms,一個靈活的表單,渲染和驗證庫來得方便的地方。 Flask-WTF擴展為這個WTForms庫提供了一個簡單的接口。

使用Flask-WTF,可以在Python腳本中定義表單域并使用HTML模板來呈現(xiàn)它們。 也可以將驗證應(yīng)用于WTF字段。

Flask-WTF是簡化了WTForms操作的一個第三方庫。WTForms表單的兩個主要功能是驗證用戶提交數(shù)據(jù)的合法性以及渲染模板。還有其它一些功能:CSRF保護,文件上傳等。

安裝方法:

pip install flask-wtf

已安裝的軟件包包含一個Form類,該類必須用作用戶定義表單的父級。WTforms包包含各種表單域的定義。

下面列出了一些標(biāo)準(zhǔn)表單字段:

1.WTForms簡單驗證

from flask import Flask,request,render_template
from wtforms import Form,StringField
from wtforms.validators import Length,EqualTo
app = Flask(__name__)
class RegistForm(Form):
    username = StringField(validators=[Length(min=3,max=10,message='用戶名必須在3到10位之間')])
    password = StringField(validators=[Length(min=6,max=10,message='密碼必須6到10位之間')])
    password_repeat = StringField(validators=[Length(min=6,max=10),
                                              EqualTo("password",message='密碼不一致')])
@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()

2.WTForms常用驗證器和自定義驗證器

常用的驗證器:

(1)Email:驗證上傳的數(shù)據(jù)是否為郵箱格式

(2)EqualTo:兩個字段是否相等(密碼和重復(fù)密碼)

(3)InputRequired:原始數(shù)據(jù)的需要驗證

(4)Length:長度限制,有mix和max兩個值

(5)NumberRange:數(shù)字的區(qū)間,有mix和max兩個值,如果在兩個值之間則滿足

(6)Regexp:自定義正則表達(dá)式

(7)URL:必須url格式

(8)UUID:uuid格式

相關(guān)推薦:《Python視頻教程》

from wtforms import Form,StringField,IntegerField
from wtforms.validators import Length,EqualTo,Email,InputRequired,NumberRange
from wtforms.validators import Regexp,URL,ValidationError
class LoginForm(Form):
    email = StringField(validators=[Email(message='郵箱格式不正確')])
    username = StringField(validators=[InputRequired(message='這個字段必須要填')])
    age = IntegerField(validators=[NumberRange(min=18,max=100)])
    phone = StringField(validators=[Regexp(r'1[38745]\d{9}')])
    homepage = StringField(validators=[URL()])
    captcha = StringField(validators=[Length(4,4)])
    # 自定義驗證器
    def validate_captcha(self,field):
        if field.data != '1234':      #field.data:用戶提交過來的數(shù)據(jù)
            raise ValidationError('驗證碼錯誤')          #如果驗證失敗,就拋出驗證失敗的異常

3.使用wtforms渲染模板

 forms.py

class SettingsForm(Form):
    username = StringField(label="用戶名:",validators=[InputRequired(message='這個字段必須要填')])
    age = IntegerField('年齡:',validators=[NumberRange(min=18, max=100)])
    remeber = BooleanField('記住我')
    tags = SelectField('標(biāo)簽',choices=[(1,'python'),(2,'django')])

flask_wtforms_demo.py

@app.route('/settings/',methods=['GET','POST'])
def settings():
    if request.method == 'GET':
        form = SettingsForm()
        return render_template('settings.html',form=form)
    else:
        pass

settings.html


{#    括號里面可以添加樣式#}
    

{{ form.username.label }} {{ form.username(class="") }}

    

{{ form.age.label }} {{ form.age() }}

    

{{ form.remeber.label }} {{ form.remeber() }}

    

{{ form.tags.label }} {{ form.tags() }}

    

相關(guān)推薦:

Flask中的Cookie和Session是什么


名稱欄目:創(chuàng)新互聯(lián)Python教程:三分鐘看懂Flask第三方庫WTForms
網(wǎng)頁URL:http://www.5511xx.com/article/cocoich.html