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...