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访问纯真IP数据库的代码
May 19 Python
详解Python中 __get__和__getattr__和__getattribute__的区别
Jun 16 Python
Python之Scrapy爬虫框架安装及简单使用详解
Dec 22 Python
Python 3.3实现计算两个日期间隔秒数/天数的方法示例
Jan 07 Python
Python批量生成特定尺寸图片及图画任意文字的实例
Jan 30 Python
python实现大文件分割与合并
Jul 22 Python
Python实现将蓝底照片转化为白底照片功能完整实例
Dec 13 Python
Django 博客实现简单的全文搜索的示例代码
Feb 17 Python
python如何通过闭包实现计算器的功能
Feb 22 Python
解决ROC曲线画出来只有一个点的问题
Feb 28 Python
Python虚拟环境的创建和包下载过程分析
Jun 19 Python
Python+OpenCV图像处理——图像二值化的实现
Oct 24 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
Get或Post提交值的非法数据处理
2006/10/09 PHP
mcrypt启用 加密以及解密过程详细解析
2013/08/07 PHP
为PHP5.4开启Zend OPCode缓存
2014/12/26 PHP
PHP简单实现欧拉函数Euler功能示例
2017/11/06 PHP
PDO::beginTransaction讲解
2019/01/27 PHP
准确获得页面、窗口高度及宽度的JS
2006/11/26 Javascript
javascript中JSON对象与JSON字符串相互转换实例
2015/07/11 Javascript
jquery实现经典的淡入淡出选项卡效果代码
2015/09/22 Javascript
JS实现自定义简单网页软键盘效果代码
2015/11/05 Javascript
AngularJS表单验证中级篇(3)
2016/09/28 Javascript
JS实现动画兼容性的transition和transform实例分析
2016/12/13 Javascript
JS html时钟制作代码分享
2017/03/03 Javascript
基于jquery日历价格、库存等设置插件
2020/07/05 jQuery
angular2路由切换改变页面title的示例代码
2017/08/23 Javascript
Vue实例的对象参数options的几个常用选项详解
2019/11/08 Javascript
vue中注册自定义的全局js方法
2019/11/15 Javascript
如何用vue-cli3脚手架搭建一个基于ts的基础脚手架的方法
2019/12/12 Javascript
JavaScript实现飞舞的泡泡效果
2020/02/07 Javascript
如何优雅地取消 JavaScript 异步任务
2020/03/22 Javascript
JavaScript字符和ASCII实现互相转换
2020/06/03 Javascript
[02:53]DOTA2英雄基础教程 山岭巨人小小
2013/12/09 DOTA
python实现批量nii文件转换为png图像
2019/07/18 Python
tensorflow入门:TFRecordDataset变长数据的batch读取详解
2020/01/20 Python
Python 分布式缓存之Reids数据类型操作详解
2020/06/24 Python
洛杉矶健身中心女性专用运动服饰品牌:Marika
2018/05/09 全球购物
护士自我鉴定范文
2013/10/06 职场文书
怎么写有吸引力的自荐信
2013/11/17 职场文书
岗位廉政承诺书
2014/03/27 职场文书
聘用意向书范本
2014/04/01 职场文书
旅游节目策划方案
2014/05/26 职场文书
法定代表人身份证明书(含说明)
2014/10/02 职场文书
2014年体育部工作总结
2014/11/13 职场文书
2015年工商局个人工作总结
2015/07/23 职场文书
2015年教师节感言
2015/08/03 职场文书
vue3使用vuedraggable实现拖拽功能
2022/04/06 Vue.js
Win10 Anaconda安装python-pcl
2022/04/29 Servers