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类的动态修改的实例方法
Mar 24 Python
python版简单工厂模式
Oct 16 Python
Python编程之Re模块下的函数介绍
Oct 28 Python
Python3.6 Schedule模块定时任务(实例讲解)
Nov 09 Python
Python+OpenCV让电脑帮你玩微信跳一跳
Jan 04 Python
python flask中静态文件的管理方法
Mar 20 Python
python生成不重复随机数和对list乱序的解决方法
Apr 09 Python
Python3利用Dlib实现摄像头实时人脸检测和平铺显示示例
Feb 21 Python
python点击鼠标获取坐标(Graphics)
Aug 10 Python
TensorFlow MNIST手写数据集的实现方法
Feb 05 Python
如何验证python安装成功
Jul 06 Python
10个顶级Python实用库推荐
Mar 04 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访问数组最后一个元素的函数end()用法
2015/03/18 PHP
Symfony2实现在doctrine中内置数据的方法
2016/02/05 PHP
PHP  Yii清理缓存的实现方法
2016/11/10 PHP
常用PHP封装分页工具类
2017/01/14 PHP
PHP PDOStatement::fetch讲解
2019/01/31 PHP
javascript 二分法(数组array)
2010/04/24 Javascript
javascript实现瀑布流加载图片原理
2016/02/02 Javascript
Java框架SSH结合Easyui控件实现省市县三级联动示例解析
2016/06/12 Javascript
JavaScript在web自动化测试中的作用示例详解
2019/08/25 Javascript
vue循环数组改变点击文字的颜色
2019/10/14 Javascript
JavaScript的垃圾回收机制与内存管理
2020/08/06 Javascript
[02:43]2018DOTA2亚洲邀请赛主赛事首日TOP5
2018/04/04 DOTA
[48:37]EG vs OG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
[39:21]LGD vs OG 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.24
2019/09/10 DOTA
Python中os.path用法分析
2015/01/15 Python
Python优化技巧之利用ctypes提高执行速度
2016/09/11 Python
Python常用字符串替换函数strip、replace及sub用法示例
2018/05/21 Python
浅谈PyTorch中in-place operation的含义
2020/06/27 Python
如何使用python记录室友的抖音在线时间
2020/06/29 Python
Python环境管理virtualenv&amp;virtualenvwrapper的配置详解
2020/07/01 Python
Pycharm 设置默认解释器路径和编码格式的操作
2021/02/05 Python
用HTML5 实现橡皮擦的涂抹效果的教程
2015/05/11 HTML / CSS
澳大利亚电子产品购物网站:Dick Smith
2017/02/02 全球购物
中药专业大学生医药工作求职信
2013/10/25 职场文书
门诊挂号室室长岗位职责
2013/11/27 职场文书
优秀护士获奖感言
2014/02/20 职场文书
《春天来了》教学反思
2014/04/07 职场文书
机械专业求职信
2014/05/25 职场文书
2014年群众路线党员自我评议
2014/09/24 职场文书
小学教师师德师风自我剖析材料
2014/09/29 职场文书
副校长个人对照检查材料思想汇报
2014/10/04 职场文书
2014年公司工作总结
2014/11/22 职场文书
应届毕业生自荐信
2015/03/04 职场文书
病危通知书样本
2015/04/17 职场文书
原生JS中应该禁止出现的写法
2021/05/05 Javascript
Python3 多线程(连接池)操作MySQL插入数据
2021/06/09 Python