Flask如何处理Web表单-创新互联

这篇文章给大家分享的是有关Flask如何处理Web表单的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

站在用户的角度思考问题,与客户深入沟通,找到鼓楼网站设计与鼓楼网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站建设、网站制作、企业官网、英文网站、手机端网站、网站推广、域名申请虚拟主机、企业邮箱。业务覆盖鼓楼地区。

web表单是web应用程序的基本功能。

它是HTML页面中负责数据采集的部件。表单有三个部分组成:表单标签、表单域、表单按钮。表单允许用户输入数据,负责HTML页面数据采集,通过表单将用户输入的数据提交给服务器。

在Flask中,为了处理web表单,我们一般使用Flask-WTF扩展,它封装了WTForms,并且它有验证表单数据的功能。

WTForms支持的HTML标准字段

字段对象说明
字段对象说明
StringField文本字段
TextAreaField多行文本字段
PasswordField密码文本字段
HiddenField隐藏文件字段
DateField文本字段,值为 datetime.date 文本格式
DateTimeField文本字段,值为 datetime.datetime 文本格式
IntegerField文本字段,值为整数
DecimalField文本字段,值为decimal.Decimal
FloatField文本字段,值为浮点数
BooleanField复选框,值为 True 和 False
RadioField一组复选框
SelectField下拉列表
SelectMutipleField下拉列表可选择多个值
FileField文件上传字段
SubmitField表单提交按钮
FormField把表单作为字段嵌入另一个表单
FieldList一组指定类型的字段

WTForms常用验证函数

验证函数说明
DateRequired确保字段中有数据
EqualTo比较两个字段的值,常用于比较两次密码的输入
Length验证输入的字符串长度
NumberRange验证输入的值在数字范围内
URL验证URL
AnyOf验证输入值在可选列表中
NoneOf验证输入值不在可选列表中

使用 Flask-WTF 需要配置参数 SECRET_KEY

CSRF_ENABLED是为了CSRF(跨站请求伪造)保护。 SECRET_KEY用来生成加密令牌,当CSRF激活的时候,该设置会根据设置的密匙生成加密令牌。在HTML页面中直接写form表单:


  
  
  

视图函数中获取表单数据:

from flask import Flask,render_template,request

@app.route('/login',methods=['GET','POST'])
def login():
  if request.method == 'POST':
    username = request.form['username']
    password = request.form['password']
    print username,password
  return render_template('login.html',method=request.method)123456789

使用 Flask-WTF 实现表单

配置参数


app.config['SECRET_KEY'] = 'SECRET_KEY'1

模板页面



 #设置csrf_token
 {{ form.csrf_token() }}
 {{ form.us.label }}
 

{{ form.us }}

 {{ form.ps.label }}  

{{ form.ps }}

 {{ form.ps2.label }}  

{{ form.ps2 }}

 

{{ form.submit() }}

 {% for x in get_flashed_messages() %}    {{ x }}  {% endfor %} 1234567891011121314 视图函数 #coding=utf-8 from flask import Flask,render_template,\   redirect,url_for,session,request,flash #导入wtf扩展的表单类 from flask_wtf import FlaskForm #导入自定义表单需要的字段 from wtforms import SubmitField,StringField,PasswordField #导入wtf扩展提供的表单验证器 from wtforms.validators import DataRequired,EqualTo app = Flask(__name__) app.config['SECRET_KEY']='1' #自定义表单类,文本字段、密码字段、提交按钮 class Login(FlaskForm):   us = StringField(label=u'用户名',validators=[DataRequired()])   ps = PasswordField(label=u'密码',validators=[DataRequired(),EqualTo('ps2','err')])   ps2 = PasswordField(label=u'确认密码',validators=[DataRequired()])   submit = SubmitField(u'提交') @app.route('/login') def login():   return render_template('login.html') #定义根路由视图函数,生成表单对象,获取表单数据,进行表单数据验证 @app.route('/',methods=['GET','POST']) def index():   form = Login()   if form.validate_on_submit():     name = form.us.data     pswd = form.ps.data     pswd2 = form.ps2.data     print name,pswd,pswd2     return redirect(url_for('login'))   else:     if request.method=='POST':       flash(u'信息有误,请重新输入!')     print form.validate_on_submit()   return render_template('index.html',form=form) if __name__ == '__main__':   app.run(debug=True)

感谢各位的阅读!关于“Flask如何处理Web表单”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!


标题名称:Flask如何处理Web表单-创新互联
文章位置:http://myzitong.com/article/gpepi.html