温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Flask如何处理Web表单

发布时间:2021-02-01 09:22:18 来源:亿速云 阅读:211 作者:小新 栏目:开发技术

这篇文章给大家分享的是有关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表单:

<form method='post'>   <input type="text" name="username" placeholder='Username'>   <input type="password" name="password" placeholder='password'>   <input type="submit"> </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

模板页面

<form method="post">  #设置csrf_token  {{ form.csrf_token() }}  {{ form.us.label }}  <p>{{ form.us }}</p>  {{ form.ps.label }}  <p>{{ form.ps }}</p>  {{ form.ps2.label }}  <p>{{ form.ps2 }}</p>  <p>{{ form.submit() }}</p>  {% for x in get_flashed_messages() %}    {{ x }}  {% endfor %} </form>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表单”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI