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虚拟环境Virtualenv使用教程
May 18 Python
搞笑的程序猿:看看你是哪种Python程序员
Jun 12 Python
通过实例浅析Python对比C语言的编程思想差异
Aug 30 Python
浅谈django中的认证与登录
Oct 31 Python
python基本语法练习实例
Sep 19 Python
Python实现多进程共享数据的方法分析
Dec 04 Python
Python numpy中矩阵的基本用法汇总
Feb 12 Python
详解Python3注释知识点
Feb 19 Python
python、Matlab求定积分的实现
Nov 20 Python
django有外键关系的两张表如何相互查找
Feb 10 Python
解决python脚本中error: unrecognized arguments: True错误
Apr 20 Python
使用Numpy对特征中的异常值进行替换及条件替换方式
Jun 08 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获取远程图片体积大小的实例
2013/11/12 PHP
你不知道的文件上传漏洞php代码分析
2016/09/29 PHP
jQuery Div中加载其他页面的实现代码
2009/02/27 Javascript
Tab页界面,用jQuery及Ajax技术实现
2009/09/21 Javascript
jQuery和AngularJS的区别浅析
2015/01/29 Javascript
基于javascript、ajax、memcache和PHP实现的简易在线聊天室
2015/02/03 Javascript
【JS+CSS3】实现带预览图幻灯片效果的示例代码
2016/03/17 Javascript
react-native中ListView组件点击跳转的方法示例
2017/09/30 Javascript
VUE2 前端实现 静态二级省市联动选择select的示例
2018/02/09 Javascript
微信小程序实现提交input信息到后台的方法示例
2019/01/19 Javascript
vue-列表下详情的展开与折叠案例
2020/07/28 Javascript
python实现的守护进程(Daemon)用法实例
2015/06/02 Python
让Python代码更快运行的5种方法
2015/06/21 Python
Python导出DBF文件到Excel的方法
2015/07/25 Python
python实现发送和获取手机短信验证码
2016/01/15 Python
python paramiko模块学习分享
2017/08/23 Python
放弃 Python 转向 Go语言有人给出了 9 大理由
2017/10/20 Python
Python合并多个Excel数据的方法
2018/07/16 Python
Python3中在Anaconda环境下安装basemap包
2018/10/21 Python
python3 实现验证码图片切割的方法
2018/12/07 Python
Numpy之random函数使用学习
2019/01/29 Python
解决pycharm 远程调试 上传 helpers 卡住的问题
2019/06/27 Python
Django 过滤器汇总及自定义过滤器使用详解
2019/07/19 Python
安装Pycharm2019以及配置anconda教程的方法步骤
2019/11/11 Python
基于python爬取链家二手房信息代码示例
2020/10/21 Python
HTML5 Web Workers之网站也能多线程的实现
2013/04/24 HTML / CSS
请写出char *p与"零值"比较的if语句
2014/09/24 面试题
眼镜促销方案
2014/03/15 职场文书
幼儿园教师岗位职责
2014/03/17 职场文书
《小动物过冬》教学反思
2014/04/17 职场文书
鼓舞士气的口号
2014/06/16 职场文书
运动会加油稿20字
2014/11/15 职场文书
学校端午节活动总结
2015/02/11 职场文书
英文慰问信
2015/02/14 职场文书
电力培训学习心得体会
2016/01/11 职场文书
MySQL的prepare使用以及遇到的bug
2022/05/11 MySQL