1.表单处理

Web 表单是 Web 应用程序的基本功能,它是 HTML 页面中负责数据采集的部件。通常情况下,表单有三个部分组成,分别是表单标签、表单域、表单按钮。表单允许用户输入数据,负责HTML页面数据采集,通过表单将用户输入的数据提交给服务器。

下面通过一个简单的案例来说明使用;

from flask import Flask,render_template,requestapp = Flask(__name__)
app.debug = True@app.route("/show/")
def show():return render_template("show.html")@app.route("/handle/",methods=["POST"])
def handle():# form 表单数据form_results = request.form# 显示username = form_results.get("name")chinese = form_results.get("chinese")programming = form_results.get("programming")description = form_results.get("description")# 数据results = {"username":username,"chinese":chinese,"programming":programming,"description":description,}return render_template("results.html",results=results)if __name__ == '__main__':app.run()

前端模板文件代码,参考如下:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>登录</title>
</head>
<body><h1>表单显示</h1><form method="post" action="/handle/"><p>姓名:<input type="text" name="name"></p><p>语文成绩:<input type="number" name="chinese"></p><p>编程成绩:<input type="number" name="programming"></p><p>自我评价:<textarea name="description"></textarea></p><p><input type="submit" value="提交"></p></form>
</body>
</html>

加载成功数据后,展示数据的页面代码如下:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>显示结果</title>
</head>
<body><h1>结果</h1><table border="1">{% for key,value in results.items() %}<tr><td>{{ key }}</td><td>{{ value }}</td></tr>{% endfor %}</table>
</body>
</html>

在浏览器地址栏输入 http://localhost:5000/show后,显示效果如下:

  

表单扩展

上述是表单的基本使用,下面我们可以使用 Flash-WTF 表单扩展库(更高效)来实现一个功能有输入用户名、输入密码与确认密码,以及提交按钮的表单。

首先,使用该库需要先进行安装:pip install Flask-WTF==0.14,因为 Flask 与 werkzeug 的兼容性问题,所以还需要安装:pip install werkzeug==0.16.0。

接着在主目录下创建 loginform.py 文件,编写代码如下;

from flask import Flask,render_template,request,flash
from flask_wtf import FlaskForm
from wtforms import StringField,PasswordField,SubmitField
from wtforms.validators import DataRequired,EqualToapp = Flask(__name__)
app.debug = True
# 密钥
app.config["SECRET_KEY"] = "admin112233"class LoginForm(FlaskForm):username = StringField(label=u"用户名:",validators=[DataRequired()])password = PasswordField(label=u"密码:",validators=[DataRequired()])repwd = PasswordField(label=u"确认密码:",validators=[DataRequired(),EqualTo("password","两次输入密码不一致!")])# 提交submit = SubmitField(label=u"提交")@app.route("/index/")
def index():post_form = LoginForm()return render_template("loginform.html",form=post_form)@app.route("/login/",methods=["POST","GET"])
def login():if request.method == "POST":post_form = LoginForm()if post_form.validate_on_submit():name = post_form.username.datapassword = post_form.password.datarepwd = post_form.repwd.dataprint("姓名:",name)print("密码:",password)print("确认密码:",repwd)flash("欢迎您,%s"%name)else:flash("信息有误,请重新输入!!!")return render_template("hello.html",form=post_form)if __name__ == '__main__':app.run()

显示表单页面的代码如下;

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Login</title>
</head>
<body><h1>登录表单</h1><form method="post" action="/login/">{{ form.csrf_token() }}<p><b>{{ form.username.label }}</b>{{ form.username }}</p><p><b>{{ form.password.label }}</b>{{ form.password }}</p><p><b>{{ form.repwd.label }}</b>{{ form.repwd }}</p><p><b>{{ form.submit() }}</b></p>{% for msg in get_flashed_messages() %}{{ msg }}{% endfor %}</form>
</body>
</html>

数据验证成功的页面参考代码如下;

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>{% for msg in get_flashed_messages() %}<h1>{{ msg }}</h1>{% endfor %}
</body>
</html>

运行上述程序,在地址栏输入 http://localhost:5000/index 后,效果如下;

  

Flask 框架(四)— 表单处理相关推荐

  1. Flask使用Flask-WTF表单

    Flask-WTF Flask-WTF是Flask框架的表单验证模块,Flask-WTF将表单数据解析.CSRF保护.文件上传等功能与Flask集成. 安装 Flask-WTF及其依赖可使用pip安装 ...

  2. php验证规则表单,PHP Yii框架之表单验证规则大全

    Yii是一个基于组件的高性能PHP框架,用于开发大型Web应用.Yii采用严格的OOP编写,并有着完善的库引用以及全面的教程. 废话不多说了,直接给大家贴代码了. class ContactForm ...

  3. PHP Yii框架之表单验证规则大全

    Yii是一个基于组件的高性能PHP框架,用于开发大型Web应用.Yii采用严格的OOP编写,并有着完善的库引用以及全面的教程,本文给大家介绍php yii框架之表单验证规则大全,感兴趣的朋友一起学习吧 ...

  4. 视频教程-Web前端开发利器 SPRY框架之表单验证-JavaScript

    Web前端开发利器 SPRY框架之表单验证 有17年互联网行业从业经验,始终在教学第一线,勇于创新,从有效教学,不断向高效教学转变.始终坚持"学生为主体,教师为主导:商业化案例,企业化情境& ...

  5. Flask之Web表单使用

    Web表单使用 @(Flask) request对象包含客户端发出的所有请求信息. request.form能获取POST请求中提交的表单数据. 使用的包 Flask-WTF可以把处理Web表单的过程 ...

  6. python flask 表单提交_python中flask应用(表单处理)

    本篇文章给大家带来的内容是关于python中flask应用(表单处理),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1.为什么使用Flask-WTF? request对象公开了所有 ...

  7. Flask中的表单处理以及邮件发送

    flask中集成的web表单处理 为什么使用Flask-WTF? request对象公开了所有客户端发送的请求信息.特别是request.form可以访问POST请求提交的表单数据. 尽管Flask的 ...

  8. flask入门之表单提交

    1. 介绍 Flask是基于python的web框架,核心部分包括Werkzeug和jinja2. 本节模拟一个表单提交的过程,即在用户提交表单后浏览到新页面.需要准备两个html文件(一个提交界面和 ...

  9. HTML学习04之内联框架和表单

    内联框架 <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8 ...

  10. 框架生成的HTML修改,Django框架form表单验证 修改html标签的样式

    经过前面的学习,我们大致可以知道CharField.EmailField等等以Field结尾的方法,只能帮助我们对用户发来的信息做验证,不能生成html标签.字段本身自己虽然只做验证,但是我们可以通过 ...

最新文章

  1. 深入理解C语言-二级指针三种内存模型
  2. App上架应用市场,如何攻破安全过检难题
  3. java 线程池 源码_java线程池源码分析
  4. 自动 更新SVN目录文件.bat
  5. 牛客练习赛70 重新排列
  6. 476 Number Complement
  7. centOS 6 rpm安装MySQL小记
  8. Window10彻底卸载应用商店
  9. kafka之五:如何手动更新Kafka中某个Topic的偏移量
  10. linux赋高权命令有哪些,Linux命令中的Z原来是这个意思
  11. 数据结构--二叉搜索树
  12. python文件操作完成_基于python的文件操作
  13. Qt学习之QDir的使用(使用QDir创建文件夹)
  14. 虎年2022头像在线生成HTML网站源码
  15. 了解Google发展的下一代搜索Knowledge Graph:Emily Moxley访谈录
  16. 论文转换成引用的参考文献格式
  17. Android 获取微信ua,微信小程序实现获取用户高清头像
  18. cmd静默运行_如何在Win10上静默运行批处理文件
  19. MS COCO数据集人体关键点评估(Keypoint Evaluation)(来自官网)
  20. CentOS 7下配置hadoop 2.8 分布式集群

热门文章

  1. 一点资讯app signature
  2. 朋友圈水果店简短销售文案,水果店朋友圈宣传文案
  3. 2022-03-03 北京 计算机知识。字符编码,ppt
  4. Django的Forms.py
  5. 电脑删除文件 找不到该项目
  6. 今日头条文章量如何打造爆款
  7. 英语听力 Listen To This 全套下载
  8. 50个启发你灵感的黄色系网站设计
  9. uniapp接入人身核验小程序
  10. 【unity 3d】--- 瞄准镜效果