python實現 Flask WTF表單

2021-09-01 11:55:19 字數 3439 閱讀 1985

web表單是web應用程式的基本功能。

它是html頁面中負責資料採集的部件。表單有三個部分組成:表單標籤、表單域、表單按鈕。表單允許使用者輸入資料,負責html頁面資料採集,通過表單將使用者輸入的資料提交給伺服器。

在flask中,為了處理web表單,我們一般使用flask-wtf擴充套件,它封裝了wtforms,並且它有驗證表單資料的功能

字段物件

說明stringfield

文字字段

textareafield

多行文字字段

passwordfield

密碼文字字段

hiddenfield

隱藏檔案字段

datefield

文字字段,值為 datetime.date 文字格式

datetimefield

文字字段,值為 datetime.datetime 文字格式

integerfield

文字字段,值為整數

decimalfield

文字字段,值為decimal.decimal

floatfield

文字字段,值為浮點數

booleanfield

核取方塊,值為true 和 false

radiofield

一組單選框

selectfield

下拉列表

selectmutiplefield

下拉列表,可選擇多個值

filefield

檔案上傳字段

submitfield

表單提交按鈕

formfield

把表單作為字段嵌入另乙個表單

fieldlist

一組指定型別的字段

驗證函式

說明datarequired

確保欄位中有資料

equalto

比較兩個欄位的值,常用於比較兩次密碼輸入

length

驗證輸入的字串長度

numberrange

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

url驗證url

anyof

驗證輸入值在可選列表中

noneof

驗證輸入值不在可選列表中

使用flask-wtf需要配置引數secret_key。

csrf_enabled是為了csrf(跨站請求偽造)保護。 secret_key用來生成加密令牌,當csrf啟用的時候,該設定會根據設定的密匙生成加密令牌。在html頁面中直接寫form表單:

在html頁面中直接寫form表單:

建立乙個templates資料夾,在裡面新建乙個wtf.html

檢視函式中獲取表單資料:

在templates資料夾外(同目錄)新建乙個wtf.py

from flask import flask,render_template,request

def helloworld():

# 1 判斷請求方法是否為post

if request.method=='post':

# 2 獲取引數 並校驗引數完整性,如果有問題進行flash

username=request.form.get('username')

password=request.form.get('password')

password2 = request.form.get('password2')

# 驗證資料是否完整

if not all([username,password,password2]):

return '資料不完整'

# 校驗密碼是否相同

if password != password2:

return '兩次密碼不一致'

# 沒有問題返回success

else:

return 'success'

return render_template('wtf.html')

if __name__=='__main__':

模板頁面:

建立乙個templates資料夾,在裡面新建乙個flask_wtf.html

檢視函式:

在templates資料夾外(同目錄)新建乙個flask_wtf.py

from flask import flask,render_template,request,flash

# 匯入wtf的表單類

from flask_wtf import flaskform

# 匯入自定義表單需要的字段

from wtforms import submitfield,stringfield,passwordfield

# 匯入wtf擴充套件提供的表單驗證器

from wtforms.validators import datarequired,equalto

# 自定義表單類,文字字段,密碼字段,提交按鈕

# 需要自定義乙個表單類

class registerform(flaskform):

username=stringfield('使用者名稱:',validators=[datarequired()])

password=passwordfield('密碼:',validators=[datarequired()])

password2=passwordfield('確認密碼:',validators=[datarequired(),equalto('password','兩次密碼輸入不一致')])

input=submitfield('提交')

# 定義根路由檢視函式,生成表單物件,獲取表單資料,進行表單資料驗證

def form():

register_form=registerform()

if request.method=='post':

#呼叫validate_on_submit方法 可以一次性執行所有的驗證函式的邏輯

if register_form.validate_on_submit():

#進入這裡就表示所有的邏輯都驗證成功

username=request.form.get('username')

password=request.form.get('password')

password2=request.form.get('password2')

return 'success'

else:

return '引數有誤'

return render_template('flask_wtf.html',form=register_form)

# 自定義乙個歡迎介面

def welcome():

return '歡迎介面'

if __name__=='__main__':

python實現線性回歸 python實現線性回歸

參考 機器學習實戰 machine learning in action 一 必備的包 一般而言,這幾個包是比較常見的 matplotlib,用於繪圖 numpy,陣列處理庫 pandas,強大的資料分析庫 sklearn,用於線性回歸的庫 scipy,提供很多有用的科學函式 我一般是用pip安裝,...

python爬蟲基礎實現 Python實現基礎爬蟲

初次使用urllib實現爬蟲的資料請求 urllib.request.urlopen url 發起get請求 urllib.parse.quote 將中文進行url編碼 from urllib.request importurlopen,urlretrieve,requestfrom urllib....

python實現快取 Python實現快取

注意 本文是乙個存根。稍會將發布有關不同的簡單快取實現的更詳細分析。請參閱下面的註解獲得大致的摘要。簡單快取實現 用法 注意,該實現使用普通列表來跟蹤訪問順序,以便能夠在快取填滿時丟棄最近最少使用的專案。列表型別沒有真正為此目的而優化,但是這種方法對於較小的快取非常有效,特別是當快取訪問遵循80 2...