這篇文章帶給大家的內容是關於python中flask應用(表單處理),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。
1、為什麼要使用Flask-WTF?
request物件公開了所有客戶端發送的請求資訊。特別是request.form可以存取POST請求提交的表單資料。
儘管Flask的request物件提供的支援足以處理web表單,但仍有許多任務會變得單調且重複。
表單的HTML程式碼產生和驗證提交的表單資料就是兩個很好的例子。
優勢:
Flask-WTF擴充使得處理web表單能獲得更愉快的體驗。該擴充功能是一個封裝了與框架無關的WTForms包的Flask整合。
2、什麼是表單處理?
在網頁中,為了和使用者進行資訊互動總是必須出現一些表單。
flask設計了WTForm表單庫來讓flask可以更簡單地管理作業表單資料。
WTForm中最重要的幾個概念如下:
1). Form類,開發者自訂的表單必須繼承自Form類別或其子類別。
Form類別最主要的功能是透過其所包含的Field類別提供對表單內資料的快速存取方式。
2). 各種Field類,即字段。一般而言每個Field類別都對應一個input的HTML標籤。
例如WTForm自帶的一些Field類別例如BooleanField就對應,
SubmitField就對應等等。
3). Validator類別。這個類別用於驗證使用者輸入的資料的合法性。
例如Length驗證器可以用來驗證輸入資料的長度,
FileAllowed驗證上傳檔案的類型等等。
另外,flask為了防範csfr(cross-site request forgery)攻擊, 預設在使用flask-wtf之前要求app一定要設定過secret_key。 最簡單地可以透過app.config['SECRET_KEY'] = 'xxxx'來設定。
3、常見的Field類別
PasswordField 密碼字段,自動將輸入轉換為小黑點
DateField 字段.date一樣
IntergerField 文字字段,格式要求是整數
DecimalField #數
BooleanField 複選框,值為True或者False
RadioField 一組單選框
SelectField 下拉列表,需要注意一下的是choices參數確定了下拉選項,但是和HTML中的
MultipleSelectField 可選多個值的下拉清單
Validator驗證函數Validator是驗證函數,把一個欄位綁定某個驗證函數之後,flask會在接收表單中的資料之前對資料做一個驗證,如果驗證成功才會接收資料。驗證函數Validator如下,具體的validator可能需要的參數不太一樣,這裡只給一些常用的,更多詳細的用法可以參見wtforms/validators.py檔的源碼,參看每一個validator類別需要哪些參數:
*基本上每一個validator都有message參數,指出當輸入資料不符合validator要求時顯示什麼資訊。
Email 驗證電子郵件地址的合法性,要求正則模式是^. @(
12 )$# EqualTo 比較兩個字段的值,通常用於輸入兩次密碼等場景,可寫參數fieldname,不過注意其是一個字符串變量,指向同表單中的另一個字段的字段名
IPAddress 驗證IPv4地址,參數預設ipv4=True,ipv6=False。如果想要驗證ipv6可以設定這兩個參數反過來。
Length 驗證輸入的字串的長度,可以有min,max兩個參數指出要設定的長度下限和上限,注意參數類型是字串,不是INT!!
NumberRange驗證輸入數字是否在範圍內,可以有min和max兩個參數指出數字上限下限,注意參數類型是字串,不是INT!!然後在這個validator的message參數裡可以設定%(min)s和%( max)s兩個格式化部分,來告訴前端這個範圍到底是多少。其他validator也有這種類似的小技巧,可以參考原始碼。
Optional 無輸入值時跳過同字段的其他驗證函數
Required 必填欄位
Regexp 用正則表達式必填欄位
Regexp 用正則表達式驗證值
### Regexp 用正則表達式驗證值, ### URL 驗證URL,要求正規模式是^[a-z] ://(?P
AnyOf 確保值在可選值清單中。參數是values(一個可選值的清單)。特別提下,和SelectField進行配合使用時,不知道為什麼SelectField的choices中項的值不能是數字。 。否則AnyOf的values參數中即使有相關數字也無法辨識出目前選項是合法選項。我懷疑NoneOf可能也是一樣的套路。
NoneOf 確保值不在選用值清單中
#forms.py文件:用来设定规则 from flask_wtf import FlaskForm from flask_wtf.file import FileRequired, FileAllowed from wtforms import StringField, PasswordField, SubmitField, FileField from wtforms.validators import DataRequired, Length class LoginForm(FlaskForm): name = StringField( label="用户名/邮箱/手机号", validators=[ # DataRequired("请输入用户名"), Length(3, 20, message="长度不符"), ] ) passwd = PasswordField( label="密码", validators=[ # DataRequired("请输入密码"), Length(3, 20), ], ) file = FileField( label="简历", validators=[ FileRequired(), FileAllowed(['pdf', 'txt'], 'pdf 能被接收') ] )
#templates/demo/login.html nbsp;html> <meta> <title>Title</title>
#主程序 import random from flask import Flask, redirect, render_template from forms import LoginForm from flask_bootstrap import Bootstrap app = Flask(__name__) bootstrap = Bootstrap(app) app.config['SECRET_KEY'] = random._urandom(24) @app.route('/success/') def success(): return "success" @app.route('/login/', methods=('GET', 'POST')) def submit(): # 实例化表单对象; form = LoginForm() if form.validate_on_submit(): print(form.data) return redirect('/success/') return render_template('demo/login.html', form=form) app.run()
以上是python中flask應用(表單處理)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于Seaborn的相关问题,包括了数据可视化处理的散点图、折线图、条形图等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于进程池与进程锁的相关问题,包括进程池的创建模块,进程池函数等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于简历筛选的相关问题,包括了定义 ReadDoc 类用以读取 word 文件以及定义 search_word 函数用以筛选的相关内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于数据类型之字符串、数字的相关问题,下面一起来看一下,希望对大家有帮助。

VS Code的确是一款非常热门、有强大用户基础的一款开发工具。本文给大家介绍一下10款高效、好用的插件,能够让原本单薄的VS Code如虎添翼,开发效率顿时提升到一个新的阶段。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于numpy模块的相关问题,Numpy是Numerical Python extensions的缩写,字面意思是Python数值计算扩展,下面一起来看一下,希望对大家有帮助。

pythn的中文意思是巨蟒、蟒蛇。1989年圣诞节期间,Guido van Rossum在家闲的没事干,为了跟朋友庆祝圣诞节,决定发明一种全新的脚本语言。他很喜欢一个肥皂剧叫Monty Python,所以便把这门语言叫做python。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

Atom編輯器mac版下載
最受歡迎的的開源編輯器

Dreamweaver CS6
視覺化網頁開發工具

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器