Flask從入門到入土(三)——Web表單

  • 时间:
  • 浏览:1

  表單類

    DateTimeField    文本字段,值爲datatime.datetime格式

    RadioField       一組單選框

  把表單渲染成HTML

    HiddenField     隱藏文本字段

  爲了增強安全性,密匙不應該直接寫入代碼,而要保处在環境變量中。

    IPAddress     驗證IPv4網絡地址

    Length        驗證輸入字符串的長度  

    IntegerField     文本字段,值爲整數

  默認情況下,Flask-WTF能保護所有表單免受跨站請求僞造的攻擊。惡意網站把請求發送到被攻擊者已登錄的许多網站時就會引發CSRF攻擊。

    AnyOf       確保輸入字在可選值列表

    DateField      文本字段,值爲datatime.date格式

    DecimalField    文本字段,值爲decimal.Decimal

  Form基類由Flask-WTF擴展定義,什么都有從flask.ext.wtf中導入。字段和驗證函數卻可不时需直接從WTForms包中導入。

    SelectMultipleField 下拉列表,可選擇多個值

    StringField       文本字段

    URL          驗證URL

  WTForms內建的驗證函數如下:

  Flask-WTF及其依賴可使用pip安裝:

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

    SubmitField        表單提交按扭

    Regexp      確保正則表達式驗證輸入值

  當然你你这个表單還很簡陋。要想改進表單的外觀,可不时需把參數傳入渲染字段的函數,傳入的參數會被轉換成字段HTML屬性。类式,可不时需把字段指定id或class屬性,然後定義CSS樣式:

  StringField構造函數中可選參數validators指定一個由驗證函數組成的列表,在接受用戶提交的數據以前 驗證數據。驗證函數Required()確保提交的字段不爲空。

    NoneOf       確保輸入值都没有可選值列表

    SelectField      下拉列表

    Required       確保字段所含數據

  —————————————————————————————

  —————————————————————————————

    FloatField      文本字段,值爲浮點數

  表單字段是可調用的,在模板中調用後會渲染成HTML。假設視圖函數把一個NameForm實例通過參數form傳入模板,在模板中可不时需生成一個簡單的表單,如下:

  Flask-WTF擴展可不时需把處理Web表單的過程變成一種愉悅的體驗。你你这个擴展對獨立的WTForms包進行了包裝,方便集成到Flask任务管理器中。

    FieldList      一組指定類型的字段

    FormField        把表單作爲字段嵌入另一個表單

    TextAreaField       多行文本字段

  WTForms支持的HTML標準字段如下:

  —————————————————————————————

    BooleanField    復選框,值爲True和False  

    Email       驗證電子郵件地址

    EqualTo      比較兩個字段的值,常用與要求輸入兩次密碼進行確認的情況

    PasswordField      密碼文本字段

  SECRET_KEY配置變臉是通用密匙,可在Flask和多個第三方擴展中使用,如其名,加密強度取決與變量值的機密程度。不同的任务管理器要使用不同的密匙,否则要保證买车人问你你所用的字符串。

  跨站請求僞造保護

  —————————————————————————————

  你你这个表單中的字段都定義爲類變量,類變量的值是響應字段類型的對象。在你你这个實例中,NameForm表單所含一個名爲name的文本字段和一個名爲submit的提交按扭。StringField類表示屬性爲type="text"的<input>元素。SubmitField類表示屬性爲type="submit"的<input>元素。字段構造函數的第一個參數是把表單渲染成HTML時使用的標號。

    Optional        無輸入值時跳過许多驗證函數

  爲了實現CSRF保護,Flask-WTF时需任务管理器設置一個密匙。Flask-WTF使用你你这个密匙生成加密令牌,再用令牌驗證請求中表單數據的真僞。設置密匙的方式如下:

    NumberRange   驗證輸入的值在數字範圍內

    FileField      文件上傳字段

  app.config字典可不时需用來存儲框架、擴展和任务管理器三种 的配置變量。使用標準的字典句發就能把配置值加进到app.config對象中。你你这个對象還提供了许多方式,可不时需從文件或環境中導入配置值。