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 相关文章推荐
python2.7删除文件夹和删除文件代码实例
Dec 18 Python
Python2.x利用commands模块执行Linux shell命令
Mar 11 Python
利用python操作SQLite数据库及文件操作详解
Sep 22 Python
Python使用pip安装pySerial串口通讯模块
Apr 20 Python
Django实现发送邮件功能
Jul 18 Python
Pandas 重塑(stack)和轴向旋转(pivot)的实现
Jul 22 Python
Python调用C语言的实现
Jul 26 Python
Python创建数字列表的示例
Nov 28 Python
django框架forms组件用法实例详解
Dec 10 Python
python3的UnicodeDecodeError解决方法
Dec 20 Python
Python定义函数实现累计求和操作
May 03 Python
如何更换python默认编辑器的背景色
Aug 10 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 按指定元素值去除数组元素的实现方法
2011/11/04 PHP
PHP5各个版本的新功能和新特性总结
2014/03/16 PHP
php验证session无效的解决方法
2014/11/04 PHP
phpStudy 2016 使用教程详解(支持PHP7)
2017/10/18 PHP
热点新闻滚动特效的js代码
2013/08/17 Javascript
javascript获取URL参数与参数值的示例代码
2013/12/20 Javascript
简述Jquery与DOM对象
2015/07/10 Javascript
jquery专业的导航菜单特效代码分享
2015/08/29 Javascript
Javascript 实现计算器时间功能详解及实例(二)
2017/01/08 Javascript
JS全角与半角转化实例(分享)
2017/07/04 Javascript
anime.js 实现带有描边动画效果的复选框(推荐)
2017/12/24 Javascript
JavaScript实现模态对话框实例
2020/01/13 Javascript
vue element table中自定义一些input的验证操作
2020/07/18 Javascript
[47:55]Ti4第二日主赛事败者组 NaVi vs EG 1
2014/07/20 DOTA
Django的URLconf中使用缺省视图参数的方法
2015/07/18 Python
Python实现文件信息进行合并实例代码
2018/01/17 Python
Python实现的读取文件内容并写入其他文件操作示例
2019/04/09 Python
Python参数类型以及常见的坑详解
2019/07/08 Python
python统计字符的个数代码实例
2020/02/07 Python
Python图像处理二值化方法实例汇总
2020/07/24 Python
详解pytorch中squeeze()和unsqueeze()函数介绍
2020/09/03 Python
python 如何将office文件转换为PDF
2020/09/22 Python
详解HTML5中表单验证的8种方法介绍
2016/12/19 HTML / CSS
美国鞋类购物网站:Shiekh Shoes
2016/08/21 全球购物
美国温暖商店:The Warming Store
2018/12/15 全球购物
中东地区最大的奢侈品市场:The Luxury Closet
2019/04/09 全球购物
大学班级干部的自我评价分享
2014/02/10 职场文书
2014年三八妇女节活动方案
2014/02/28 职场文书
企业党的群众路线教育实践活动学习心得体会
2014/10/31 职场文书
学生会辞职信
2015/03/02 职场文书
初中重阳节活动总结
2015/05/05 职场文书
CSS3新特性详解(五):多列columns column-count和flex布局
2021/04/30 HTML / CSS
怎么用Python识别手势数字
2021/06/07 Python
SpringBoot+Redis实现布隆过滤器的示例代码
2022/03/17 Java/Android
人物搭配车车超萌联名预备中 【咒术迴战】 ⨯ 【天竺鼠车车】 展开合作
2022/04/11 日漫
golang的文件创建及读写操作
2022/04/14 Golang