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 30 Python
关于pip的安装,更新,卸载模块以及使用方法(详解)
May 19 Python
CentOS 7下Python 2.7升级至Python3.6.1的实战教程
Jul 06 Python
在pycharm中使用git版本管理以及同步github的方法
Jan 16 Python
Python使用Shelve保存对象方法总结
Jan 28 Python
Django框架模板的使用方法示例
May 25 Python
pandas DataFrame 警告(SettingWithCopyWarning)的解决
Jul 23 Python
Python编写一个验证码图片数据标注GUI程序附源码
Dec 09 Python
Python原始套接字编程实例解析
Jan 29 Python
Django高并发负载均衡实现原理详解
Apr 04 Python
python爬虫请求头的使用
Dec 01 Python
python利用opencv实现颜色检测
Feb 23 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
真正面向对象编程:PHP5.01发布
2006/10/09 PHP
PHP获取类中常量,属性,及方法列表的方法
2009/04/09 PHP
php读取目录及子目录下所有文件名的方法
2014/10/20 PHP
Yii2创建多界面主题(Theme)的方法
2016/10/08 PHP
PHP实现用户登录的案例代码
2018/05/10 PHP
tp5(thinkPHP5框架)captcha验证码配置及验证操作示例
2019/05/28 PHP
Thinkphp5框架ajax接口实现方法分析
2019/08/28 PHP
JavaScript中yield实用简洁实现方式
2010/06/12 Javascript
JavaScript 浏览器对象模型BOM使用介绍
2015/04/13 Javascript
js中substring和substr两者区别和使用方法
2015/11/09 Javascript
浅谈javascript 函数表达式和函数声明的区别
2016/01/05 Javascript
jQuery实现checkbox即点即改批量删除及中间遇到的坑
2017/11/11 jQuery
vue v-model实现自定义样式多选与单选功能
2018/07/05 Javascript
vue-cli3 项目优化之通过 node 自动生成组件模板 generate View、Component
2019/04/30 Javascript
微信小程序结合Storage实现搜索历史效果
2019/05/18 Javascript
JavaScript从原型到原型链深入理解
2019/06/03 Javascript
纯 JS 实现放大缩小拖拽功能(完整代码)
2019/11/25 Javascript
[02:44]2014DOTA2 国际邀请赛中国区预选赛 大神红毯秀
2014/05/25 DOTA
Python采用socket模拟TCP通讯的实现方法
2014/11/19 Python
Anaconda多环境多版本python配置操作方法
2017/09/12 Python
Python安装Numpy和matplotlib的方法(推荐)
2017/11/02 Python
python 为什么说eval要慎用
2019/03/26 Python
详解Python爬取并下载《电影天堂》3千多部电影
2019/04/26 Python
Python 使用 Pillow 模块给图片添加文字水印的方法
2019/08/30 Python
numpy矩阵数值太多不能全部显示的解决
2020/05/14 Python
Sublime Text3最新激活注册码分享适用2020最新版 亲测可用
2020/11/12 Python
python+selenium自动化实战携带cookies模拟登陆微博
2021/01/19 Python
CSS3 animation实现简易幻灯片轮播特效
2016/09/27 HTML / CSS
QA工程师岗位职责
2013/11/20 职场文书
教师应聘个人求职信
2013/12/10 职场文书
保密承诺书
2014/03/27 职场文书
中学生社会实践活动总结
2014/07/03 职场文书
2015年保育员个人工作总结
2015/05/13 职场文书
2015最新婚礼司仪主持词
2015/06/30 职场文书
工程移交协议书
2016/03/24 职场文书
redis不能访问本机真实ip地址的解决方案
2021/07/07 Redis