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.防止跨域訪...