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表單:
模板頁面:
index.html
'''目的:實現乙個簡單的登陸的邏輯處理
1.路由需要有get和post兩種請求方式
2.獲取請求的引數
3.判斷引數是否填寫&密碼是否相同
4.如果判斷都沒有問題,返回success
'''from flask import flask, request, render_template, flash
from flask_wtf import flaskform
from wtforms import submitfield, passwordfield, stringfield
from wtforms.validators import datarequired, equalto
# 建立例項
# 需要傳入__name__,目的是為了確定資源所在的路徑
# 設定secret_key
'''使用wtf實現表單
自定義表單類
'''class loginform(flaskform):
username = stringfield('使用者名稱',validators=[datarequired()])
password = passwordfield('密碼',validators=[datarequired()])
password2 = passwordfield('確認密碼',validators=[datarequired(),equalto('password','密碼不一致')])
submit = submitfield('提交')
def login():
login_form = loginform()
# 1.判斷請求方式
if request.method == 'post':
# 2. 獲取請求的引數
username = request.form.get('username')
password = request.form.get('password')
password2 = request.form.get('password2')
# 3.驗證引數
if login_form.validate_on_submit():
print(username,password)
return 'success'
else:
flash('引數有誤')
return render_template('index.html', form=login_form)
# 路由定義及檢視函式
# flask 定義路由是由裝飾器實現的,路由預設只支援get請求
def index():
# request:請求物件-->獲取請求方式、資料
# 1.判斷請求方式
if request.method == 'post':
# 2.獲取請求的引數
username = request.form.get('username')
password = request.form.get('password')
password2 = request.form.get('password2')
# print(username)
# 3.判斷引數是否完整 & 密碼是否相同
if not all([username, password, password2]):
# print('引數不完整')
flash('引數不完整')
elif password != password2:
# print('密碼不一致')
flash('密碼不一致')
else:
return 'success'
return render_template('index.html')
if __name__ == '__main__':
Flask學習筆記 表單
1.做好準備工作 2.安裝flask wtf flask wtf對wtforms包進行了包裝,很好的整合到flask程式中。在虛擬環境中使用pip工具安裝flask wtf venv pip install flask wtf 3.配置檔案 add more variables here as ne...
Flask學習筆記 使用Flask實現表單開發
使用html實現的表單 用flask實現相同功能的表單 coding utf 8 from flask import flask,request,render template,redirect from wtforms import form,textfield,passwordfield,val...
Flask學習筆記 第四章WEB表單
參考書目為 flask web 開發 github倉庫點這裡 輸入name之後在重新整理介面提示乙個警告,重複此前的操作。前乙個請求包含表單資料的post請求 name 重新整理頁面會重新提交單 web應用的最後乙個請求最好別是post請求 重定向會傳送get請求 post請求資料的儲存,post請...