国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > Python > 正文

Flask框架WTForm表單用法示例

2020-02-15 22:29:14
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

本文實(shí)例講述了Flask框架WTForm表單用法。分享給大家供大家參考,具體如下:

運(yùn)行環(huán)境:

python2.7

flask  0.11

flask-wtf  0.14.2

wtform能夠通過(guò)一個(gè)類(lèi)定義一些字段,這些字段會(huì)在前端生成標(biāo)簽,并且通過(guò)設(shè)置字段的驗(yàn)證規(guī)則,自動(dòng)判斷前端輸入數(shù)據(jù)的格式。

一般用于用戶登錄,用戶注冊(cè)等信息錄入。

示例:

from wtforms import Formfrom flask import Flask,render_template,request,redirectfrom wtforms.fields import corefrom wtforms.fields import html5from wtforms.fields import simplefrom wtforms import validatorsfrom wtforms import widgetsimport sysreload(sys)sys.setdefaultencoding('utf8')#python2.7 轉(zhuǎn)碼用的,避免顯示中文為亂碼app = Flask(__name__,template_folder='templates')app.debug=Trueclass LoginForm(Form):  name = simple.StringField(    label='用戶名',  #前端顯示中文    validators=[      validators.DataRequired(message='用戶名不能為空'),      validators.Length(min=6,max=18,message='用戶名長(zhǎng)度必須大于%(min)d且小于%(max)d')    ],  #字段的驗(yàn)證規(guī)則    widget=widgets.TextInput(), #頁(yè)面上顯示的標(biāo)簽    render_kw={'class':'form=control'} #給上面插件生成的時(shí)候添加屬性,比如bootstrap的屬性  )  pwd = simple.PasswordField(    label='密碼',    validators=[      validators.DataRequired(message='密碼不能為空'),      validators.Length(min=8,message='用戶名長(zhǎng)度必須大于%(min)d'),      validators.Regexp(regex="^(?=.*[a-z])(?=.*[A-Z])(?=.*/d)(?=.*[$@$!%*?&])[A-Za-z/d$@$!%*/&]{8,}",               message='密碼至少8個(gè)字符,至少1個(gè)大寫(xiě)字母,1個(gè)小寫(xiě)字母'),    ],    widget=widgets.PasswordInput(),    render_kw={'class':'from-control'}  )#字段,內(nèi)部包含正則表達(dá)式@app.route('/login',methods=['GET','POST'])def login():  if request.method == 'GET':    form = LoginForm()    return render_template('login.html',form=form)    #將form對(duì)象傳給前端  else:    form = LoginForm(formdata=request.form) #從請(qǐng)求體from中取值    if form.validate():  #驗(yàn)證      print "用戶提交數(shù)據(jù)通過(guò),提交的值為:",form.data    else:      print form.errors  #錯(cuò)誤信息    return render_template('login.html',form=form)@app.route('/')def hello_world():  return 'Hello World!'if __name__ == '__main__':  app.run()
<!DOCTYPE html><html lang="en"><head>  <meta charset="UTF-8">  <meta http-equiv="x-ua-compatible" content="IE=edge">  <meta name="viewport" content="width=device-width, initial-scale=1">  <title>Title</title></head><body><h1>登陸</h1><form method="post">  <p>{{ form.name.label }} {{ form.name }} {{ form.name.errors[0] }}</p>  <p>{{ form.pwd.label }} {{ form.pwd }} {{ form.pwd.errors[0] }}</p>  <input type="submit" value="提交"></form></body></html>            
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 凤城市| 德清县| 方正县| 延寿县| 遂溪县| 绍兴县| 韶山市| 柳林县| 长垣县| 游戏| 新田县| 开平市| 南漳县| 云霄县| 来安县| 濉溪县| 龙游县| 雷山县| 九龙坡区| 涟源市| 岳池县| 海林市| 贡觉县| 象山县| 嘉禾县| 平原县| 江西省| 郸城县| 崇州市| 瑞昌市| 宁远县| 邳州市| 广德县| 塔河县| 扎囊县| 化隆| 黄浦区| 响水县| 夏津县| 封丘县| 沈丘县|