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实现web方式logview的方法
Aug 10 Python
Golang与python线程详解及简单实例
Apr 27 Python
Python实现生成随机数据插入mysql数据库的方法
Dec 25 Python
python中正则表达式的使用方法
Feb 25 Python
Python爬虫之网页图片抓取的方法
Jul 16 Python
python实现连连看辅助之图像识别延伸
Jul 17 Python
Django 外键的使用方法详解
Jul 19 Python
Python操作多维数组输出和矩阵运算示例
Nov 28 Python
python在不同条件下的输入与输出
Feb 13 Python
keras 两种训练模型方式详解fit和fit_generator(节省内存)
Jul 03 Python
基于python实现计算两组数据P值
Jul 10 Python
Python爬虫之爬取最新更新的小说网站
May 06 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开启安全模式后禁用的函数集合
2011/06/26 PHP
php数据库备份还原类分享
2014/03/20 PHP
yii实现创建验证码实例解析
2014/07/31 PHP
php获取数组元素中头一个数组元素值的实现方法
2014/12/20 PHP
Yii2中Restful API原理实例分析
2016/07/25 PHP
修改好的jquery滚动字幕效果实现代码
2011/06/22 Javascript
(跨浏览器基础事件/浏览器检测/判断浏览器)经验代码分享
2013/01/24 Javascript
js图片延迟加载的实现方法及思路
2013/07/22 Javascript
table行随鼠标移动变色示例
2014/05/07 Javascript
jQuery实现的多屏图像图层切换效果实例
2015/05/07 Javascript
微信小程序 Button 组件详解及简单实例
2017/01/10 Javascript
vue实现ToDoList简单实例
2017/02/07 Javascript
基于angular实现三级联动的生日插件
2017/05/12 Javascript
前端页面文件拖拽上传模块js代码示例
2017/05/19 Javascript
详解如何使用webpack在vue项目中写jsx语法
2017/11/08 Javascript
nodejs实现大文件(在线视频)的读取
2020/10/16 NodeJs
vue 点击按钮实现动态挂载子组件的方法
2018/09/07 Javascript
在Vue中使用axios请求拦截的实现方法
2018/10/25 Javascript
vue.js+elementUI实现点击左右箭头切换头像功能(类似轮播图效果)
2019/09/05 Javascript
javascript实现固定侧边栏
2021/02/09 Javascript
[01:38]DOTA2 2015国际邀请赛中国区预选赛 Showopen
2015/06/01 DOTA
Python中os和shutil模块实用方法集锦
2014/05/13 Python
python使用两种发邮件的方式smtp和outlook示例
2017/06/02 Python
Pyqt实现无边框窗口拖动以及窗口大小改变
2018/04/19 Python
Python从函数参数类型引出元组实例分析
2019/05/28 Python
python简单实现矩阵的乘,加,转置和逆运算示例
2019/07/10 Python
用python wxpy管理微信公众号并利用微信获取自己的开源数据
2019/07/30 Python
python多线程+代理池爬取天天基金网、股票数据过程解析
2019/08/13 Python
Python中的sys.stdout.write实现打印刷新功能
2020/02/21 Python
浅谈css3中的渐进增强和优雅降级
2017/12/01 HTML / CSS
10分钟入门CSS3 Animation
2018/12/25 HTML / CSS
英国最大的体育&时尚零售公司:JD Sports
2017/12/13 全球购物
下述程序的作用是计算机数组中的最大元素值及其下标
2012/11/26 面试题
物理系毕业生自荐书
2014/06/13 职场文书
政协委员个人总结
2015/03/03 职场文书
css3 选择器
2022/05/11 HTML / CSS