Flask學習筆記2 Web表單

2022-08-27 14:45:09 字數 3295 閱讀 2946

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