Flask處理Web表單的實現方法

2022-10-04 13:09:33 字數 3177 閱讀 1002

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

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

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

wtforms支援的html標準字段

字段物件

說明字段物件

說明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

一組指定型別的字段

wtforms常用驗證函式

驗證函式

說明daterequired

確保欄位中有資料

equalto

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

length

驗證輸入的字串長度

numberrange

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

url驗證url

anyof

驗證輸入值在可選列表中

noneof

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

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

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

from flask import flask,render_template,request

@app.route('/login程式設計客棧',methods=['get','post'])

def login():

if request.method == 'post':

username = request.form['username']

password = request.form['password']

print username,password

return render_template('login.html',method=request.method)123456789

配置引數

app.config['secret_key'] = 'secret_key'1

模板頁面

1234567891011121314

檢視函式

#coding=utf-8

from flask import flask,render_template,\

redirect,url_for,session,request,flash

#匯入wtf擴充套件的表單類

from flask_wtf import flaskform

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

from wtforms import submitfield,stringfield,passwordfield

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

from wtforms.validators import datarequired,equalto

app = flask(__name__)

app.config['secret_key']='1'

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

class login(flaskform):

us = stringfield(label=u'使用者名稱',validators=[datarequired()])

ps = passwordfield(label=u'密碼',validators=[datarequired(),equalto('ps2','err')])

ps2 = passwordfield(label=u'確認密碼',validators=[datarequired()])

submit = submitfield(u'提交')

@app.route('/login')

def login():

return render_template('login.html')

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

@app.route('/',methods=['get','post'])

def index():

form = login()

if form.validate_on_submit():

name = form.us.data

pswww.cppcns.comwd = form.ps.data

pswd2 = form.ps2.data

print name,pswd,pswd2

return redirect(url_for('login'))

else:

if request.method=='post'uqbfjyt:

flash(u'資訊有誤,請重新輸入!')

print form.valuqbfjytidate_on_submit()

return render_template('index.html',form=form)

if __name__ == '__main__':

app.run(debug=true)

Flask中整合的web表單處理

為什麼使用flask wtf?request物件公開了所有客戶端傳送的請求資訊。特別是request.form可以訪問post請求提交的表單資料。儘管flask的request物件提供的支援足以處理web表單,但依然有許多任務會變得單調且重複。表單的html 生成和驗證提交的表單資料就是兩個很好的例...

Flask的表單處理

web 表單是在任何乙個 web 應用程式中最基本的一部分。我們將使用表單允許使用者寫文章,以及登入到應用程式中。乙個名為 flask wtf 的擴充套件,將 wtforms 整合到 flask 程式,可以幫助完成很多事情 表單類表單的建立,可以通過繼承從 flask wtf 匯入的form父類實現...

flask專案Web表單 1

flask wtf拓展是flask的乙個模組,用於處理web表單。web表單用於通過http get或http post請求向服務端提交資料。flask wtf擴充套件的主要功能如下 1.生成表單元件的html 2.後台驗證 3.向web端返回錯誤資訊 4.在web頁面上顯示錯誤資訊 5.防止跨域訪...