Flask從入門到精通之Flask表單


  Flask請求對象包含客戶端發出的所有請求信息。其中,request.form 能獲取POST 請求中提交的表單數據。盡管Flask 的請求對象提供的信息足夠用於處理Web 表單,但有些任務很單調,而且要重復操作。比如,生成表單的HTML 代碼和驗證提交的表單數據。Flask-WTF(http://pythonhosted.org/Flask-WTF/)擴展可以把處理Web 表單的過程變成一種愉悅的體驗。這個擴展對獨立的WTForms(http://wtforms.simplecodes.com)包進行了包裝,方便集成到Flask 程序中。Flask-WTF 及其依賴可使用pip 安裝:

 pip install flask-wtf

  使用Flask-WTF 時,每個Web 表單都由一個繼承自Form 的類表示。這個類定義表單中的一組字段,每個字段都用對象表示。字段對象可附屬一個或多個驗證函數。驗證函數用來驗證用戶提交的輸入值是否符合要求。

  是一個簡單的Web 表單,包含一個文本字段和一個提交按鈕。

from flask.ext.wtf import Form
from wtforms import StringField,SubmitField
from wtforms.validators import Required

class NameForm(Form):
        name = StringField('what is your name?',validators=[Required()])
        submit = SUbmitField('submit')

  Form 基類由Flask-WTF 擴展定義,所以從flask.ext.wtf 中導入。字段和驗證函數卻可以直接從WTForms 包中導入。  

  這個表單中的字段都定義為類變量,類變量的值是相應字段類型的對象。在這個示例中,NameForm 表單中有一個名為name 的文本字段和一個名為submit 的提交按鈕。StringField類表示屬性為type="text" 的<input> 元素。SubmitField 類表示屬性為type="submit" 的
<input> 元素。字段構造函數的第一個參數是把表單渲染成HTML 時使用的標號。StringField 構造函數中的可選參數validators 指定一個由驗證函數組成的列表,在接受用戶提交的數據之前驗證數據。驗證函數Required() 確保提交的字段不為空。

  WTForms 支持的HTML 標准字段如下表

字段類型 說明
StringField 文本字段
TextAreaField 多行文本字段
PasswordField 密碼文本字段
HiddenField 隱藏文本字段
DateField 文本字段,值為datetime.date 格式
DateTimeField 文本字段,值為datetime.datetime 格式
IntegerField 文本字段,值為整數
DecimalField 文本字段,值為decimal.Decimal
FloatField 文本字段,值為浮點數
BooleanField 復選框,值為True 和False
RadioField 一組單選框
SelectField 下拉列表
SelectMultipleField 下拉列表,可選擇多個值
FileField 文件上傳字段
SubmitField 表單提交按鈕
FormField 把表單作為字段嵌入另一個表單
FieldList 一組指定類型的字段

  WTForms驗證函數如下表:

Email 驗證電子郵件地址
EqualTo 比較兩個字段的值;常用於要求輸入兩次密碼進行確認的情況
IPAddress 驗證IPv4 網絡地址
Length 驗證輸入字符串的長度
NumberRange 驗證輸入的值在數字范圍內
Optional 無輸入值時跳過其他驗證函數
Required 確保字段中有數據
Regexp 使用正則表達式驗證輸入值
URL 驗證URL
AnyOf 確保輸入值在可選值列表中
NoneOf 確保輸入值不在可選值列表中


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM