這篇文章給大家分享的是有關(guān)flask表單添加多個按鈕的方法的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。
創(chuàng)新互聯(lián)建站服務(wù)項目包括蘄春網(wǎng)站建設(shè)、蘄春網(wǎng)站制作、蘄春網(wǎng)頁制作以及蘄春網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,蘄春網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到蘄春省份的部分城市,未來相信會繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
表單添加多個提交按鈕
在某些情況下,可能需要為一個表單添加多個提交按鈕。比如在創(chuàng)建文章的表單中添加發(fā)布按鈕和存草稿的按鈕。當(dāng)用戶提交表單時,需要在視圖函數(shù)中根據(jù)按下的按鈕來做出不同的處理。
下面例子中創(chuàng)建了一個表單,save按鈕用于保存,publish表示發(fā)布,正文字段使用TextAreaField字段。
forms.py:
class NewPostForm(FlaskForm):
title = StringField('Title', validators=[DataRequired(), Length(1,50)])
body = TextAreaField('Body', validators=[DataRequired()])
save = SubmitField('Save') # 保存按鈕
publish = SubmitField('Publish') # 發(fā)布按鈕當(dāng)表單數(shù)據(jù)通過POST請求提交時,F(xiàn)lask會把表單數(shù)據(jù)解析到request.form字典。如果表單中有兩個提交字段,那么只有被單擊的提交字段才會出現(xiàn)在這個字典中。當(dāng)我們對表單類實例或特定的字段屬性調(diào)用data屬性時,WTForms會對數(shù)據(jù)做進(jìn)一步處理。對于提交字段的值,它會將其轉(zhuǎn)換為布爾值:被單擊的提交字段的值將是True,違背單擊的值則是False。
基于這個機(jī)制,我們可以通過提交按鈕字段的值來判斷當(dāng)前被單擊的按鈕。
例子:app.py:判斷被單擊的提交按鈕
from forms import NewPostForm
@app.route('/two-submits', methods=['GET', 'POST'])
def two_submits():
form = NewPostForm()
if form.validate_on_submit():
if form.save.data: # 保存按鈕被單擊
#進(jìn)行保存
flash('You click the "Save" button.')
elif form.publish.data: # 發(fā)布按鈕被單擊
# 提交
flash('You click the "Publish" button.')
return redirect(url_for('index'))
return render_template('2submit.html', form = form)訪問127.0.0.1:5000/two-submits,當(dāng)點擊某個按鈕時,重定向后的頁面的提示信息中會包含你單擊的按鈕名稱。

感謝各位的閱讀!關(guān)于flask表單添加多個按鈕的方法就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
分享名稱:flask表單添加多個按鈕的方法
路徑分享:http://www.chinadenli.net/article14/iphcde.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、企業(yè)網(wǎng)站制作、靜態(tài)網(wǎng)站、網(wǎng)站建設(shè)、網(wǎng)站改版、全網(wǎng)營銷推廣
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)