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运行效率
Jun 09 Python
Python上下文管理器和with块详解
Sep 09 Python
python实现的登录与提交表单数据功能示例
Sep 25 Python
python实现两个一维列表合并成一个二维列表
Dec 02 Python
pyinstaller还原python代码过程图解
Jan 08 Python
在Anaconda3下使用清华镜像源安装TensorFlow(CPU版)
Apr 19 Python
Pandas之read_csv()读取文件跳过报错行的解决
Apr 21 Python
Python3爬虫mitmproxy的安装步骤
Jul 29 Python
Python使用tkinter制作在线翻译软件
Feb 22 Python
python自动生成sql语句的脚本
Feb 24 Python
Django操作cookie的实现
May 26 Python
Python异常类型以及处理方法汇总
Jun 05 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 MYSQL乱码问题,使用SET NAMES utf8校正
2009/11/30 PHP
php结合md5的加密解密算法实例
2016/09/30 PHP
php遍历替换目录下文件指定内容的方法
2016/11/10 PHP
PHP的RSA加密解密方法以及开发接口使用
2018/02/11 PHP
为指定元素增加样式的js代码
2009/12/09 Javascript
通过javascript设置css属性的代码
2009/12/28 Javascript
腾讯UED 漂亮的提示信息效果代码
2011/09/12 Javascript
浅析JavaScript中的同名标识符优先级
2013/12/06 Javascript
JavaScript sup方法入门实例(把字符串显示为上标)
2014/10/20 Javascript
jQuery EasyUI 菜单与按钮之创建简单的菜单和链接按钮
2015/11/18 Javascript
JavaScript中的Number数字类型学习笔记
2016/05/26 Javascript
JS实现HTML标签转义及反转义
2020/04/14 Javascript
Vue中多个元素、组件的过渡及列表过渡的方法示例
2019/02/13 Javascript
javascript设计模式 ? 模板方法模式原理与用法实例分析
2020/04/23 Javascript
解决Vue + Echarts 使用markLine标线(precision精度问题)
2020/07/20 Javascript
js实现盒子滚动动画效果
2020/08/09 Javascript
[07:08]2014DOTA2西雅图国际邀请赛 小组赛7月11日TOPPLAY
2014/07/11 DOTA
[48:00]完美世界DOTA2联赛循环赛 Forest vs Inki BO2第二场 11.04
2020/11/04 DOTA
python执行外部程序的常用方法小结
2015/03/21 Python
详解python基础之while循环及if判断
2017/08/24 Python
python中pylint使用方法(pylint代码检查)
2018/04/06 Python
python修改txt文件中的某一项方法
2018/12/29 Python
django模板加载静态文件的方法步骤
2019/03/01 Python
Python列表(list)所有元素的同一操作解析
2019/08/01 Python
python使用Matplotlib改变坐标轴的默认位置
2019/10/18 Python
详解python中GPU版本的opencv常用方法介绍
2020/07/24 Python
2014年师德承诺书
2014/05/23 职场文书
广播体操比赛口号
2014/06/10 职场文书
表扬稿格式范文
2015/01/16 职场文书
付款承诺函范文
2015/01/21 职场文书
2015年外联部工作总结
2015/04/03 职场文书
简历自我评价范文
2019/04/24 职场文书
北京大学中文系教授推荐的10本小说
2019/08/08 职场文书
OpenCV全景图像拼接的实现示例
2021/06/05 Python
VS2019连接MySQL数据库的过程及常见问题总结
2021/11/27 MySQL
Mysql中@和@@符号的详细使用指南
2022/06/05 MySQL