当前位置: 首页 > news >正文

网站制作哪个好薇网站建设话语

网站制作哪个好薇,网站建设话语,怎样在网做旅游网站,营销策划公司行业榜单在Web应用中#xff0c;表单处理是一个基本而常见的任务。Python的WTForms库通过提供表单的结构、验证和渲染等功能#xff0c;简化了表单的处理流程。与此同时#xff0c;Flask的扩展Flask-WTF更进一步地整合了WTForms#xff0c;为开发者提供了更便捷、灵活的表单处理方式…在Web应用中表单处理是一个基本而常见的任务。Python的WTForms库通过提供表单的结构、验证和渲染等功能简化了表单的处理流程。与此同时Flask的扩展Flask-WTF更进一步地整合了WTForms为开发者提供了更便捷、灵活的表单处理方式。Flask-WTF是建立在WTForms之上的Flask扩展旨在简化Web应用中表单处理的流程。它提供了与Flask框架的无缝集成使得表单的创建、验证和渲染变得非常容易。通过Flask-WTF开发者能够轻松地构建具有强大功能和良好用户体验的表单页面。 主要特点 结合WTForms功能 Flask-WTF基于WTForms库继承了WTForms的强大功能包括表单字段、验证器等为开发者提供了一套完备的表单处理工具。Flask集成 与Flask框架无缝集成通过简单的导入和初始化即可在Flask应用中使用Flask-WTF提供的表单处理功能。CSRF保护 Flask-WTF内置了CSRFCross-Site Request Forgery保护机制帮助开发者防范Web应用中的CSRF攻击。表单渲染 提供了方便的表单渲染方法使得表单的呈现过程更为简单开发者可以轻松定制表单的外观。文件上传支持 支持文件上传功能使得开发者能够方便地处理包含文件上传功能的表单。 通过Flask-WTF开发者能够以更高效的方式处理Web应用中的表单减少重复性工作提升开发效率。 简单验证表单 前台定义渲染模板后端对模板渲染并根据validators验证器中的规则对输入内容进行匹配。 form methodpost{{ form.csrf_token }}!--可自定义增加颜色--p{{ form.username.label(stylecolor:red;) }} : {{form.username}}/pp{{ form.password.label }} : {{form.password}}/pp{{ form.repeat_password.label }} : {{form.repeat_password}}/p{% for msg in form.repeat_password.errors %}p提示: {{msg}}/p{% endfor %}{{form.submit}} /form后台定义MyFlaskForm(FlaskForm)类用于对登录表单进行动态渲染。 from flask import Flask, render_template, request from flask_wtf import FlaskForm from wtforms import StringField, PasswordField, SubmitField from wtforms.validators import DataRequired, EqualTo,Length,Regexpapp Flask(__name__)app.config[SECRET_KEY] d3d3Lmx5c2hhcmsuY29t# 定义表单模型类 class MyFlaskForm(FlaskForm):# DataRequired 验证不为空,Length 限制长度, Regexp限制不允许出现弱口令username StringField(labelu登录账号, validators[DataRequired(), Length(min6, max18)])password PasswordField(labelu登录密码, validators[DataRequired(), Length(min6, max18)])repeat_password PasswordField(labelu确认密码, validators[DataRequired(),EqualTo(password, u两次密码不一致)])submit SubmitField(labelu提交)app.route(/, methods[GET, POST]) def index():form MyFlaskForm()if request.method POST:if form.validate_on_submit():username form.username.datapassword form.password.datarepeat_password form.repeat_password.dataprint(用户名: {} -- 密码: {}.format(username,repeat_password))return render_template(index.html, formform)return render_template(index.html, formform)if __name__ __main__:app.run(debugTrue)运行后默认构造一个账号密码登录窗口的表单用户可以填写表单并返回给后台信息如下图所示 表单附加参数 所谓附加参数就是指渲染器返回页面是主动对某个组件增加一些CSS属性这些属性起到装饰作用通常会使用render_kw属性返回CSS。 {% for msg in get_flashed_messages() %}p闪现消息: {{ msg }}/p {% endfor %}form methodPOST idform-data{{ form.csrf_token }}{{ form.username.label }} : {{ form.username }}{{ form.password.label }} : {{ form.password }}{{ form.submit.label }} {{ form.submit }} /form后台定义MyFlaskForm(FlaskForm)类用于对登录表单进行动态渲染。 from flask import Flask, render_template, request,flash from flask_wtf import FlaskForm from wtforms import StringField, PasswordField, SubmitField from wtforms.validators import DataRequired, EqualTo,Length,Regexpapp Flask(__name__)app.config[SECRET_KEY] d3d3Lmx5c2hhcmsuY29t# 定义表单模型类 class MyFlaskForm(FlaskForm):username StringField(# 标签label账号,# 验证器validators[DataRequired(请输入用户名)],description账号,# 增加附加参数render_kw{class:form-control,placeholder:请输入用户名,required:required})password PasswordField(label密码,validators[DataRequired(请输入登录密码)],description密码,render_kw{class: form-control,placeholder: 请输入登录密码,required: required})submit SubmitField(label登录,render_kw{class: btn,})app.route(/, methods[GET, POST]) def index():form MyFlaskForm()if request.method POST:if form.validate_on_submit():username form.username.datapassword form.password.dataprint(用户名: {} 密码: {}.format(username, password))if username lyshark and password 123123:flash(密码正确)else:flash(密码错误)return render_template(index.html, formform)if __name__ __main__:app.run(debugTrue)运行上述代码当用户输入密码错误后会出现闪现消息如下图所示 地址验证表单 Flask框架中特殊表单的验证有很多常用的表单验证也就以下这几种。 form methodpost{{ form.csrf_token }}p{{ form.url.label }} : {{form.url}}/pp{{ form.address_v4.label }} : {{form.address_v4}}/pp{{ form.address_v6.label }} : {{form.address_v6}}/pp{{ form.mac.label }} : {{form.mac}}/p{{form.submit}} /form后台定义MyFlaskForm(FlaskForm)类用于对登录表单进行动态渲染。 from flask import Flask, render_template, request from flask_wtf import FlaskFormfrom wtforms import (BooleanField, DecimalField, DateField, DateTimeField, FieldList,FloatField, FormField, IntegerField, RadioField, SelectField,SelectMultipleField, StringField,SubmitField,PasswordField)from wtforms.validators import (DataRequired, data_required, Email, email, EqualTo, equal_to,IPAddress, ip_address, InputRequired, input_required, Length,length, NumberRange, number_range, Optional, optional,Regexp, regexp, URL, url, AnyOf,any_of, NoneOf, none_of, MacAddress, mac_address, UUID)app Flask(__name__)app.config[SECRET_KEY] d3d3Lmx5c2hhcmsuY29t# 定义表单模型类 class MyFlaskForm(FlaskForm):url StringField(labelu验证网址, validators[DataRequired(), Length(min6, max30),URL()])address_v4 StringField(labelu验证IPv4, validators[DataRequired(), Length(max30), IPAddress()])address_v6 StringField(labelu验证IPv6, validators[DataRequired(), Length(max30), IPAddress(ipv6True)])mac StringField(labelu验证MAC地址,validators[DataRequired(), Length(max60), MacAddress()])submit SubmitField(labelu提交)app.route(/, methods[GET, POST]) def index():form MyFlaskForm()if request.method POST:if form.validate_on_submit():url form.url.dataaddress_v4 form.address_v4.dataaddress_v6 form.address_v6.datamac form.mac.dataprint(网址: {} 地址v4: {} 地址v6: {} MAC地址: {}.format(url,address_v4,address_v6,mac))return render_template(index.html, formform)return render_template(index.html, formform)if __name__ __main__:app.run(debugTrue)网络IP地址的验证也有相应的表单如下表单分别可以实现对不同地址的验证 特殊表单验证 WTF表单除去常规表单验证以外还可以验证其他特殊表单例如验证邮箱浮点数日期时间等。 form methodpost{{ form.csrf_token }}!--邮箱--p{{ form.email.label }} -- {{ form.email }}/p{% for msg in form.email.errors %}p错误提示: {{msg}}/p{% endfor %}!--年龄--p{{ form.age.label }} -- {{ form.age }}/p{% for msg in form.age.errors %}p错误提示: {{msg}}/p{% endfor %}!--小数--p{{ form.height.label }} -- {{ form.height }}/p{% for msg in form.height.errors %}p错误提示: {{msg}}/p{% endfor %}!--浮点数--p{{ form.float_.label }} -- {{ form.float_ }}/p{% for msg in form.float_.errors %}p错误提示: {{msg}}/p{% endfor %}!--段落--p{{ form.description.label }} -- {{ form.description }}/p{% for msg in form.description.errors %}p错误提示: {{msg}}/p{% endfor %}!--日期--p{{ form.local_date.label }} -- {{ form.local_date }}/p{% for msg in form.local_date.errors %}p错误提示: {{msg}}/p{% endfor %}!--时间--p{{ form.time_date.label }} -- {{ form.time_date }}/p{% for msg in form.time_date.errors %}p错误提示: {{msg}}/p{% endfor %}!--日期时间--p{{ form.datetime_date.label }} -- {{ form.datetime_date }}/p{% for msg in form.datetime_date.errors %}p错误提示: {{msg}}/p{% endfor %}{{form.submit}} /form后台定义MyFlaskForm(FlaskForm)类用于对登录表单进行动态渲染。 from flask import Flask, render_template, request from flask_wtf import FlaskForm from wtforms.validators import DataRequired,Regexp,DataRequired, Length, Email, EqualTo, NumberRange from wtforms.fields import (StringField, PasswordField, DateField, BooleanField,DateTimeField,TimeField,SelectField, SelectMultipleField, TextAreaField,FloatField,HiddenField,RadioField, IntegerField, DecimalField, SubmitField,IntegerRangeField)app Flask(__name__)app.config[SECRET_KEY] d3d3Lmx5c2hhcmsuY29t# 定义表单模型类 class MyFlaskForm(FlaskForm):# 安装 pip install email-validatoremail StringField(labelu邮箱地址, validators[Email(messageu邮箱格式错误),Length(max32)])# 整数类型输入,必须输入整型数值范围在16到70之间age IntegerField(labelu年龄, validators[NumberRange(min16, max70)])# 小数类型输入,必须输入数字数值显示时保留两位小数height DecimalField(labelu小数输入, places2)# 浮点数类型输入,必须输入浮点数值float_ FloatField(labelu浮点数输入)# Text Area类型 段落输入框description TextAreaField(labelu段落输入)# 日期类型输入,必须输入是 年-月-日 格式的日期local_date DateField(labelu日期, format%Y-%m-%d)# 时间类型输入,必须输入是 时:分:秒 格式time_date TimeField(labelu时间, format%H:%M)# 日期时间类型,必须输入是 年-月-日 时:分:秒 格式datetime_date DateTimeField(labelu日期时间, format%Y-%m-%d %H:%M:%S)submit SubmitField(labelu提交)app.route(/, methods[GET, POST]) def index():form MyFlaskForm()if request.method POST:if form.validate_on_submit():email form.email.dataage form.age.dataheight form.height.datafloat_ form.float_.datadescription form.description.dataprint(邮箱: {} 年龄: {} 小数点: {} 浮点数: {} 段落输入: {}.format(email,age,height,float_,description))local_date form.local_date.datatime_date form.time_date.datadatetime_date form.datetime_date.dataprint(日期: {} 时间: {} 日期时间: {}.format(local_date,time_date,datetime_date))return render_template(index.html, formform)return render_template(index.html, formform)if __name__ __main__:app.run(debugTrue)特殊表单的构建这里的表单包括了如下图所示的字段可以使用 复选多选表单 复选框多选框与下拉选择框三种表单的验证方式总结。 form methodpost{{ form.csrf_token }}!--单选框过滤器--p{{ form.gender.label }} {{ form.gender }}/p{% for msg in form.gender.errors %}p错误提示: {{msg}}/p{% endfor %}!--下拉框过滤器--p{{ form.jobs.label }} {{ form.jobs }}/p{% for msg in form.jobs.errors %}p错误提示: {{msg}}/p{% endfor %}!--多选框过滤器--p{{ form.hobby.label }} {{ form.hobby }}/p{% for msg in form.hobby.errors %}p错误提示: {{msg}}/p{% endfor %}!--单选框过滤器--p{{ form.accept.label }} {{ form.accept }}/p{% for msg in form.accept.errors %}p错误提示: {{msg}}/p{% endfor %}!--复选框过滤器--p{{ form.favor.label }} {{ form.favor }}/p{% for msg in form.favor.errors %}p错误提示: {{msg}}/p{% endfor %}{{form.submit}} /form后台定义MyFlaskForm(FlaskForm)类用于对登录表单进行动态渲染。 from flask import Flask, render_template, request from flask_wtf import FlaskForm from wtforms import Form,widgets,validators from wtforms.fields import simple,core from wtforms.validators import DataRequired,Regexp,DataRequired, Length, Email, EqualTo, NumberRange from wtforms.fields import (StringField, PasswordField, DateField, BooleanField,DateTimeField,TimeField,SelectField, SelectMultipleField, TextAreaField,FloatField,HiddenField,RadioField, IntegerField, DecimalField, SubmitField,IntegerRangeField)from wtforms.fields import simple,coreapp Flask(__name__)app.config[SECRET_KEY] d3d3Lmx5c2hhcmsuY29t# 定义表单模型类 class MyFlaskForm(FlaskForm):# RadioBox单选框choices里的内容会在ul标签里里面每个项是(值显示名)对gender RadioField(labelu性别, choices[(man, 男), (wo, 女)], validators[DataRequired()])# Select下拉单选框choices里的内容会在Option里里面每个项是(值显示名)对jobs SelectField(labelu工作, choices[(teacher,老师),(doctor,医生),(engineer,工程师)])# Select多选框choices里的内容会在Option里里面每个项是(值显示名)对hobby SelectMultipleField(labelu兴趣, choices[(swim, 渗透),(skate, 运维),(hike, 科学)])# Checkbox单选框 加上defaultchecked 即默认是选上的accept BooleanField(labelu单选框, defaultchecked, validators[DataRequired()])# Select复选框, 多选框合并选择复选框favor SelectMultipleField(label特长,choices((1, Python), (2, 渗透), (3, 运维), (4, 科学)),coerceint, default[1, 2, 4],option_widgetwidgets.CheckboxInput(),widgetwidgets.ListWidget(prefix_labelFalse))submit SubmitField(labelu提交)app.route(/, methods[GET, POST]) def index():form MyFlaskForm()if request.method POST:if form.validate_on_submit():gender form.gender.datajobs form.jobs.datahobby form.hobby.dataaccept form.accept.datafavor form.favor.dataprint(性别: {} 工作: {} 兴趣: {} 是否接受: {} 复选框: {}.format(gender,jobs,hobby,accept,favor))return render_template(index.html, formform)return render_template(index.html, formform)if __name__ __main__:app.run(debugTrue)选择菜单包括了单选与多选如下图所示的表单均可以构建 文件上传表单 文件上传Flask也提供了默认表单可以使用如下提供的FileField即可完成上传工作。 form methodPOST action enctypemultipart/form-data{{ form.hidden_tag() }}{{ form.attach.label }} {{ form.attach }}input typesubmit valueSubmit /form后台定义MyFlaskForm(FlaskForm)类用于对登录表单进行动态渲染。 from flask import Flask, render_template, request from flask_wtf import FlaskForm from werkzeug.utils import secure_filename from flask_wtf.file import FileField, FileAllowed, FileRequiredapp Flask(__name__)app.config[SECRET_KEY] d3d3Lmx5c2hhcmsuY29t# 定义表单模型类 class MyFlaskForm(FlaskForm):attach FileField(label上传文件,validators[FileRequired(),FileAllowed([jpg,png],只可上传图片)])app.route(/, methods[GET, POST]) def index():form MyFlaskForm()if request.method POST:if form.validate_on_submit():filename secure_filename(form.attach.data.filename)form.attach.data.save(/ filename)return Upload successfully!return render_template(index.html, formform)return render_template(index.html, formform)if __name__ __main__:app.run(debugTrue)上传表单时需要注意启动的进程必须具备管理员权限或者是读写权限否则则会提示权限拒绝
http://wiki.neutronadmin.com/news/84429/

相关文章:

  • 网站开发服务转包合同360浏览器网页版入口
  • 网站建设去哪里学外贸网站用什么字体
  • 手机百度关键词排名 网站优化软件厦门网站快速排名优化
  • 有没有哪个网站能够做简历云指建站平台
  • 大连网站建设 选领超科技济南广告设计公司前十名
  • 长春网站排名小程序商店开发
  • 汕头网站建设网站推广wordpress优化搜索
  • 做网站专题页需要注意什么绍兴h5建站
  • 网站后台密码忘了怎么办网站怎么做口碑
  • 手机可以做网站吗?哪个网站可以做自由行地图
  • 百姓网站制作专业团队的优势
  • 宣汉网站建设新手如何做外贸
  • 汽车金融网站怎么做东莞集团网站建设
  • 装潢公司网站设计与制作360推广做网站
  • 上海集团网站制作微信支付服务商平台
  • 网站建设维护培训会上的讲话别人做的网站怎么打开
  • 建设网站服务费会计分录东莞企业网页设计哪家好
  • 手机网站制作明细报价表环保公司网站架构怎么做
  • 如何 做网站挣钱可以在线制作简历的网站
  • 张家界做网站游戏类网页设计
  • 镇江网站关键词外贸网站产品分析
  • 关于销售网站建设的短文网站建设发展方向有哪些
  • 百度网站html验证关于网站建设的题目
  • 宜昌网站排名优化六安杂谈百姓畅言
  • 网站群建设存在的问题医院做网站需要去备案
  • 网站备案服务号江苏连云港网站设计公司
  • 网站导购话术设计师个人作品集模板
  • 福建建设厅网站工程履约保险制作一个网站需要多久
  • 泰州网站建设公司加工平台用什么材料
  • 弹幕网站开发代码学校网站建设步骤过程