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操作xml文件详细介绍
Jun 09 Python
用Python遍历C盘dll文件的方法
May 06 Python
Python中实现三目运算的方法
Jun 21 Python
python验证码识别的示例代码
Sep 21 Python
pymysql 开启调试模式的实现
Sep 24 Python
python线程安全及多进程多线程实现方法详解
Sep 27 Python
Python tkinter常用操作代码实例
Jan 03 Python
python 计算方位角实例(根据两点的坐标计算)
Jan 17 Python
浅析pip安装第三方库及pycharm中导入第三方库的问题
Mar 10 Python
Python通过getattr函数获取对象的属性值
Oct 16 Python
Python爬虫爬取全球疫情数据并存储到mysql数据库的步骤
Mar 29 Python
Python&Matlab实现灰狼优化算法的示例代码
Mar 21 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设计模式 Mediator (中介者模式)
2011/06/26 PHP
深入phpMyAdmin的安装与配置的详细步骤
2013/05/07 PHP
用PHP去掉文件头的Unicode签名(BOM)方法
2017/06/22 PHP
Laravel5.* 打印出执行的sql语句的方法
2017/07/24 PHP
php获取ajax的headers方法与内容实例
2017/12/27 PHP
PHP pthreads v3下的Volatile简介与使用方法示例
2020/02/21 PHP
控制打印时页眉角的代码
2007/02/08 Javascript
在线编辑器中换行与内容自动提取
2009/04/24 Javascript
jquery监控数据是否变化(修正版)
2011/04/12 Javascript
通过jQuery源码学习javascript(二)
2012/12/27 Javascript
用JavaScript实现使用鼠标画线的示例代码
2014/08/19 Javascript
第一次接触神奇的Bootstrap菜单和导航
2016/08/01 Javascript
AngularJs Managing Service Dependencies详解
2016/09/02 Javascript
angularjs实现下拉列表的选中事件示例
2017/03/03 Javascript
微信小程序 引入es6 promise
2017/04/12 Javascript
JavaScript利用fetch实现异步请求的方法实例
2017/07/26 Javascript
自定义PC微信扫码登录样式写法
2017/12/12 Javascript
javascript实现数字配对游戏的实例讲解
2017/12/14 Javascript
深入理解js A*寻路算法原理与具体实现过程
2018/12/13 Javascript
jQuery pager.js 插件动态分页功能实例分析
2019/08/02 jQuery
vue2.x数组劫持原理的实现
2020/04/19 Javascript
详解VUE中的插值( Interpolation)语法
2020/10/18 Javascript
Python 代码性能优化技巧分享
2012/08/07 Python
深入理解NumPy简明教程---数组2
2016/12/17 Python
Python根据当前日期取去年同星期日期
2019/04/14 Python
Python调用REST API接口的几种方式汇总
2020/10/19 Python
推荐10个HTML5响应式框架
2016/02/25 HTML / CSS
美国波道夫·古德曼百货官网:Bergdorf Goodman
2017/11/07 全球购物
课程设计心得体会
2013/12/28 职场文书
简短证婚人证婚词
2014/01/09 职场文书
会计专业毕业自荐书范文
2014/02/08 职场文书
产品质量保证书
2014/04/29 职场文书
理想演讲稿范文
2014/05/21 职场文书
银行优秀员工推荐信
2015/03/24 职场文书
2016年第32个教师节致辞
2015/11/26 职场文书
腾讯云服务器部署前后分离项目之前端部署
2022/06/28 Servers