啊宪萄,這章是表單的知識(shí),那么額首先表單就是對(duì)象給客戶端提交的表單數(shù)據(jù)屎债,比如賬號(hào)密碼什么的仅政。我們用flask-wtf這個(gè)擴(kuò)展很方便的。
1.第一個(gè)要做的事防止CSRF攻擊扔茅,需要加一個(gè)密鑰已旧,好吧不太懂呢這個(gè)攻擊。
app= Flask(__name__)
app.config['SECRET_KEY'] ='hard to guess string'
其實(shí)這個(gè)密鑰應(yīng)該保存在環(huán)境變量里召娜,后話运褪。
2.然后就是定義一個(gè)簡(jiǎn)單的表單類如:創(chuàng)建一個(gè)文本段和一個(gè)提交按鈕
class NameForm(FlaskForm):
name = StringField('What is your name?',validators=[Required()]) ?/*stringfield表示這是一個(gè)文本字段,validators表示驗(yàn)證是否有數(shù)據(jù) */
submit = SubmitField('Submit') /*表示一個(gè)提交表單按鈕 */
接著把表單渲染為html,這里我們?nèi)匀挥脧?qiáng)大的bootstrap:
3. 處理表單與重定向
挑幾個(gè)重點(diǎn)說吧秸讹,首先是視圖函數(shù)是GET與POSt請(qǐng)求的處理程序檀咙,表單以post請(qǐng)求提交。
name存放名字璃诀,form是表單類弧可,傳入模板渲染。通過session存儲(chǔ)上一次的信息劣欢,redirect重定向至網(wǎng)頁(yè)棕诵。通過flask傳遞服務(wù)器信息,并通過渲染凿将。