Python進階(五十三)-Flask Web開發實現將表單渲染成HTML

#Python進階(五十三)-Flask Web來發實現將表單渲染成HTML
在利用Flask進行Python WEB開發時,頁面中的wtf.quick_form(form)函數中的參數form是如何與視圖函數中的form變量關聯起來的?即Flask是如何將表單渲染成HTML的?下面以實例的形式進行問題求解。
在視圖函數views.py中:
將相應的表單類實例作為參數傳遞給模版。
相應的LoginForm()定義在forms.py中,定義如下:
# -*- coding:utf-8 -*- from flask_wtf import Form from wtforms import StringField, PasswordField, BooleanField, SubmitField from wtforms.validators import Required, Length, Email, Regexp, EqualTo, DataRequired # 用戶登錄表單 class LoginForm(Form): uname = StringField(u'用戶名:', validators=[ DataRequired(), Length(1,64), '^[A-Za-z][A-Za-z0-9_.]*$', 0, u'用戶名必須由字母、數字、下劃線或 . 組成']) pwd = PasswordField(u'密碼:', validators=[DataRequired()]) remember_me = BooleanField(u'記住我?') submit = SubmitField(u'登錄')
1
2
3
4
5
6
7
8
9
10
11
12
13
from flask_wtf import FlaskForm
1
相應的類中的參數也需要改為FlaskForm。
html模版內容如下:
{% extends "base_login.html" %} {% import "bootstrap/wtf.html" as wtf %} {% block content %} {{ super() }} {% for message in get_flashed_messages() %}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
另外,在調試過程中,曾經出現過預料之外的模版渲染情況,即生成的Web表單并未在表單模版中渲染成功。經過代碼檢查校驗,發現是由于基模版與繼承模版出現標簽不匹配和匹配錯誤所造成的。
##經驗教訓
在定義基模版時應確保文檔的結構完整,并予以繼承模版適當的繼承空間。
經過修改基模版與繼承模版,模版可以正常渲染。頁面如下圖所示:
##附 電子書福利(免積分下載)
《Flask WEB開發:基于Python的Web應用開發實戰》
《Learning Python, 5th Edition》



Python web前端 渲染
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。