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的Treq on Twisted来进行HTTP压力测试
Apr 16 Python
分享一个简单的python读写文件脚本
Nov 25 Python
Win7下Python与Tensorflow-CPU版开发环境的安装与配置过程
Jan 04 Python
pandas pivot_table() 按日期分多列数据的方法
Nov 16 Python
Python使用pandas和xlsxwriter读写xlsx文件的方法示例
Apr 09 Python
全面了解django的缓存机制及使用方法
Jul 22 Python
python开头的coding设置方法
Aug 08 Python
python 实现目录复制的三种小结
Dec 04 Python
Pycharm安装python库的方法
Nov 24 Python
Pycharm配置lua编译环境过程图解
Nov 28 Python
python基于turtle绘制几何图形
Jun 15 Python
Python中glob库实现文件名的匹配
Jun 18 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(一)
2012/03/21 PHP
2014年最新推荐的10款 PHP 开发框架
2014/08/01 PHP
php操作xml并将其插入数据库的实现方法
2016/09/08 PHP
Laravel框架Blade模板简介及模板继承用法分析
2019/12/03 PHP
Javascript 生成指定范围数值随机数
2009/01/09 Javascript
jQuery 点击图片跳转上一张或下一张功能的实现代码
2010/03/12 Javascript
js打印纸函数代码(递归)
2010/06/18 Javascript
js 模拟气泡屏保效果代码
2010/07/10 Javascript
jQuery移动和复制dom节点实用DOM操作案例
2012/12/17 Javascript
完美兼容IE,chrome,ff的设为首页、加入收藏及保存到桌面js代码
2014/12/17 Javascript
调试JavaScript中正则表达式中遇到的问题
2015/01/27 Javascript
浅谈Sublime Text 3运行JavaScript控制台
2016/06/06 Javascript
Bootstrap3 多选和单选框(checkbox)
2016/12/29 Javascript
js实现百度搜索提示框
2017/02/05 Javascript
Nodejs中使用phantom将html转为pdf或图片格式的方法
2017/09/18 NodeJs
基于vue,vue-router, vuex及addRoutes进行权限控制问题
2018/05/02 Javascript
解决Vue axios post请求,后台获取不到数据的问题方法
2018/08/11 Javascript
微信小程序实现bindtap等事件传参
2019/04/08 Javascript
浅谈微信小程序列表埋点曝光指南
2019/10/15 Javascript
基于Element封装一个表格组件tableList的使用方法
2020/06/29 Javascript
微信小程序连接服务器展示MQTT数据信息的实现
2020/07/14 Javascript
解决VUE自定义拖拽指令时 onmouseup 与 click事件冲突问题
2020/07/24 Javascript
基于vue-simple-uploader封装文件分片上传、秒传及断点续传的全局上传插件功能
2021/02/23 Vue.js
分享一下Python 开发者节省时间的10个方法
2015/10/02 Python
Python的Django框架中使用SQLAlchemy操作数据库的教程
2016/06/02 Python
python和mysql交互操作实例详解【基于pymysql库】
2019/06/04 Python
Python 使用 PyMysql、DBUtils 创建连接池提升性能
2019/08/14 Python
Roxy美国官网:澳大利亚冲浪、滑雪健身品牌
2016/07/30 全球购物
MSC邮轮官方网站:加勒比海、地中海和世界各地的假期
2018/08/27 全球购物
NFL官方在线商店:NFLShop
2020/07/29 全球购物
群众路线教育查摆剖析材料
2014/10/10 职场文书
消防宣传语大全
2015/07/13 职场文书
酒桌上的祝酒词
2015/08/12 职场文书
大队委员竞选演讲稿
2015/11/20 职场文书
Python使用openpyxl批量处理数据
2021/06/23 Python
关于JavaScript 中 if包含逗号表达式
2021/11/27 Javascript