Flask框架学习笔记之使用Flask实现表单开发详解


Posted in Python onAugust 12, 2019

本文实例讲述了使用Flask实现表单开发。分享给大家供大家参考,具体如下:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
  <div align="center">
  <h1>User Management</h1>
  <form method="post">
    <input type="text" name="username" placeholder="username" />
    <br>
    <input type="password" name="password" placeholder="password" />
    <br>
    <input type="submit" value="Submit">
    <input type="reset" value="Reset">
  </form>
  </div>
</body>
</html>

使用html实现的表单:

Flask框架学习笔记之使用Flask实现表单开发详解

用flask实现相同功能的表单:

# -*- coding:utf-8 -*-
from flask import Flask, request, render_template, redirect
from wtforms import Form, TextField, PasswordField, validators
app = Flask(__name__)
class LoginForm(Form):
  # validators指定一个由验证函数组成的列表
  # 在接受用户提交的数据之前验证数据
  # 验证函数Required()确保提交的字段不为空
  username = TextField("username", [validators.Required()])
  password = PasswordField("password", [validators.Required()])
# 定义user路由
@app.route("/user", methods=['GET', 'POST'])
def login():
  myForm = LoginForm(request.form)
  if request.method == 'POST':
    # username = request.form['username']使用request获取数据
    # password = request.form['password']
    # 也可以使用类实例里的表单方法来获取相应的数据
    # validate来验证输入的表单数据是否有效
    if myForm.username.data == "loli" and myForm.password.data == "520" and myForm.validate():
      return redirect("http://www.baidu.com")
    else:
      message = "Login Failed"
      return render_template("form1.html", message=message, form=myForm)
  return render_template("form1.html", form=myForm)
if __name__ == '__main__':
  app.run()

form1模板:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
  <div align="center">
  <h1>User Management</h1>
  <form method="post">
    {% if message %}
      {{ message }}
    {% endif %}
    <br>
    {{ form.username }}
    <br>
    {{ form.password }}
    <br>
    <input type="submit" value="Submit">
    <input type="reset" value="Reset">
  </form>
  </div>
</body>
</html>

Flask框架学习笔记之使用Flask实现表单开发详解

一样的效果图。

在WTForm3.0中Textfield被移除,使用Stringfield代替。

WTForm主要在flask中用于验证表单。

参考官方文档:http://dormousehole.readthedocs.io/en/latest/patterns/wtforms.html

希望本文所述对大家基于flask框架的Python程序设计有所帮助。

Python 相关文章推荐
Python二叉树的定义及常用遍历算法分析
Nov 24 Python
Python + selenium自动化环境搭建的完整步骤
May 19 Python
Python爬虫获取图片并下载保存至本地的实例
Jun 01 Python
Linux下python3.7.0安装教程
Jul 30 Python
Django框架的中的setting.py文件说明详解
Oct 15 Python
Python使用pandas对数据进行差分运算的方法
Dec 22 Python
Python实现的合并两个有序数组算法示例
Mar 04 Python
Python 导入文件过程图解
Oct 15 Python
浅谈Python3识别判断图片主要颜色并和颜色库进行对比的方法
Oct 25 Python
Windows10下Tensorflow2.0 安装及环境配置教程(图文)
Nov 21 Python
python实现密码验证合格程序的思路详解
Jun 01 Python
python实现简单反弹球游戏
Apr 12 Python
Flask框架学习笔记之表单基础介绍与表单提交方式
Aug 12 #Python
python内存管理机制原理详解
Aug 12 #Python
Flask框架学习笔记之路由和反向路由详解【图文与实例】
Aug 12 #Python
python实现图片压缩代码实例
Aug 12 #Python
django与vue的完美结合_实现前后端的分离开发之后在整合的方法
Aug 12 #Python
一行Python代码过滤标点符号等特殊字符
Aug 12 #Python
一篇文章弄懂Python中的可迭代对象、迭代器和生成器
Aug 12 #Python
You might like
纯真IP数据库的应用 IP地址转化成十进制
2009/06/14 PHP
PHP+JS+rsa数据加密传输实现代码
2011/03/23 PHP
基于empty函数的判断详解
2013/06/17 PHP
PHP执行Curl时报错提示CURL ERROR: Recv failure: Connection reset by peer的解决方法
2014/06/26 PHP
ThinkPHP调用common/common.php函数提示错误function undefined的解决方法
2014/08/25 PHP
php利用反射实现插件机制的方法
2015/03/14 PHP
php实现简易聊天室应用代码
2015/09/23 PHP
详解YII关联查询
2016/01/10 PHP
php多进程模拟并发事务产生的问题小结
2018/12/07 PHP
javascript 获取图片颜色
2009/04/05 Javascript
遨游,飞飞,IE,空中网 浏览器无提示关闭方法
2011/07/11 Javascript
jquery选择器、属性设置用法经验总结
2013/09/08 Javascript
JQuery选择器绑定事件及修改内容的方法
2015/01/23 Javascript
javascript用函数实现对象的方法
2015/05/14 Javascript
js jquery获取当前元素的兄弟级 上一个 下一个元素
2015/09/01 Javascript
jQuery中常用的遍历函数用法实例总结
2015/09/01 Javascript
jQuery中ajax的load()与post()方法实例详解
2016/01/05 Javascript
jquery通过name属性取值的简单实现方法
2016/06/20 Javascript
浅谈mvvm-simple双向绑定简单实现
2018/04/18 Javascript
Element-UI踩坑之Pagination组件的使用
2018/10/29 Javascript
layui加载表格,绑定新增,编辑删除,查看按钮事件的例子
2019/09/06 Javascript
[54:57]DOTA2-DPC中国联赛定级赛 Aster vs DLG BO3第二场 1月8日
2021/03/11 DOTA
Python爬虫框架Scrapy实战之批量抓取招聘信息
2015/08/07 Python
python爬虫获取淘宝天猫商品详细参数
2020/06/23 Python
Python2 Selenium元素定位的实现(8种)
2019/02/25 Python
Python selenium文件上传下载功能代码实例
2020/04/13 Python
浅谈多卡服务器下隐藏部分 GPU 和 TensorFlow 的显存使用设置
2020/06/30 Python
北美主要的汽车零部件零售商:AutoShack.com
2019/02/23 全球购物
俄罗斯香水和化妆品网上商店:NOTINO.ru
2019/12/17 全球购物
说一下mysql, oracle等常见数据库的分页实现方案
2012/09/29 面试题
面向对象概念面试题(.NET)
2016/11/04 面试题
医院信息公开实施方案
2014/05/09 职场文书
体育之星事迹材料
2014/05/11 职场文书
诉讼财产保全担保书
2014/05/20 职场文书
终止劳动合同协议书
2014/10/05 职场文书
学习与创新自我评价
2015/03/09 职场文书