【Python Flask】 Web開發學習筆記——Web表單

Flask-WTF:一個Flask處理表單的擴展。Flask-WTF需要程序設置一個密鑰,生成加密令牌,驗證表單數據真僞。app.config['SECRET_KEY'] = 'hard to guess string',即可設置密鑰。這裏app.config字典保存了框架,擴展和程序本身的配置變量。

每個Web表單需要繼承一個Form類,如下面這個NameForm類,包含了一個文本字段StringField和一個提交按鈕SubmitField,validators則是驗證用戶輸入的驗證函數

from flask.ext.wtf import Form
from wtforms import StringField, SubmitField
from wtforms.validators import Required

class NameForm(Form):
    name = StringField('What is your name?', validators=[Required()])
    submit = SubmitField('Submit')

其中的字段是可以調用的,視圖函數可以把一個NameForm實例傳入模版,模版可以將其渲染爲一個簡單的表單:

<form method="POST">
    {{ form.hidden_tag() }}
    {{ form.name.label }} {{ form.name() }}
    {{ form.submit() }}
</form>

重定向和用戶會話:

from flask import Flask, render_template, session, redirect, url_for
@app.route('/', methods=['GET', 'POST'])
def index():
    form = NameForm()
    if form.validate_on_submit():
        session['name'] = form.name.data
        return redirect(url_for('index'))
    return render_template('index.html', form=form, name=session.get('name'))

使用redirect()函數生成HTTP重定向響應,這裏不再深入。使用用戶會話session來保存於每個連接到服務器的客戶端的會話信息,它是對單個會話私有的。

更多文章與筆記請關注:微信公衆號:二進制樹

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章