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 xlrd读取excel日期类型的2种方法
Apr 28 Python
python基础_文件操作实现全文或单行替换的方法
Sep 04 Python
解决python中无法自动补全代码的问题
Dec 04 Python
使用CodeMirror实现Python3在线编辑器的示例代码
Jan 14 Python
python opencv 图像拼接的实现方法
Jun 27 Python
Django认证系统实现的web页面实现代码
Aug 12 Python
Django CSRF认证的几种解决方案
Mar 03 Python
Python unittest单元测试框架实现参数化
Apr 29 Python
python 绘制国旗的示例
Sep 27 Python
Python爬虫之Selenium警告框(弹窗)处理
Dec 04 Python
python+selenium实现12306模拟登录的步骤
Jan 21 Python
Python装饰器的练习题
Nov 23 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
PHP utf-8编码问题,utf8编码,数据库乱码,页面显示输出乱码
2013/04/08 PHP
探讨:如何使用PHP实现计算两个日期间隔的年、月、周、日数
2013/06/13 PHP
教你如何解密 “ PHP 神盾解密工具 ”
2014/06/20 PHP
详解PHP原生DOM对象操作XML的方法
2016/10/17 PHP
利用JQuery+EasyDrag 实现弹出可拖动的Div,同时向Div传值,然后返回Div选中的值
2009/10/24 Javascript
DWR中各种java方法的调用
2016/05/04 Javascript
js实现可旋转的立方体模型
2016/10/16 Javascript
js实现登录框鼠标拖拽效果
2017/03/09 Javascript
使用bootstrap-paginator.js 分页来进行ajax 异步分页请求示例
2017/03/09 Javascript
详解基于webpack搭建react运行环境
2017/06/01 Javascript
ReactJs实现树形结构的数据显示的组件的示例
2017/08/18 Javascript
JS沙箱模式实例分析
2017/09/04 Javascript
使用nodejs+express实现简单的文件上传功能
2017/12/27 NodeJs
JS中利用FileReader实现上传图片前本地预览功能
2018/03/02 Javascript
浅谈HTTP 缓存的那些事儿
2018/10/17 Javascript
layUI实现前端分页和后端分页
2019/07/27 Javascript
JavaScrip如果基于url实现图片下载
2020/07/03 Javascript
[44:40]KG vs LGD 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
python创建线程示例
2014/05/06 Python
python查找重复图片并删除(图片去重)
2019/07/16 Python
图文详解Django使用Pycharm连接MySQL数据库
2019/08/09 Python
使用python动态生成波形曲线的实现
2019/12/04 Python
Python的控制结构之For、While、If循环问题
2020/06/30 Python
Python爬虫实例之2021猫眼票房字体加密反爬策略(粗略版)
2021/02/22 Python
python实现学生信息管理系统源码
2021/02/22 Python
CSS3 优势以及网页设计师如何使用CSS3技术
2009/07/29 HTML / CSS
Auchan Direct波兰:欧尚在线杂货店
2016/10/19 全球购物
日本AOKI官方商城:AOKI西装
2020/06/11 全球购物
三年级语文教学反思
2014/02/01 职场文书
物业管理委托协议(2篇)
2014/09/23 职场文书
辛德勒的名单观后感
2015/06/03 职场文书
高中运动会前导词
2015/07/20 职场文书
2016大学优秀学生干部事迹材料
2016/03/01 职场文书
python实现web邮箱扫描的示例(附源码)
2021/03/30 Python
mysql中整数数据类型tinyint详解
2021/12/06 MySQL
Python机器学习应用之工业蒸汽数据分析篇详解
2022/01/18 Python