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中使用md5sum检查目录中相同文件代码分享
Feb 02 Python
使用Python的Bottle框架写一个简单的服务接口的示例
Aug 25 Python
python使用xpath中遇到:到底是什么?
Jan 04 Python
基于pip install django失败时的解决方法
Jun 12 Python
Python打开文件,将list、numpy数组内容写入txt文件中的方法
Oct 26 Python
python中如何使用分步式进程计算详解
Mar 22 Python
python numpy存取文件的方式
Apr 01 Python
Python打开文件、文件读写操作、with方式、文件常用函数实例分析
Jan 07 Python
Keras自定义实现带masking的meanpooling层方式
Jun 16 Python
python gui开发——制作抖音无水印视频下载工具(附源码)
Feb 07 Python
解决PDF 转图片时丢文字的一种可能方式
Mar 04 Python
Python字符串的转义字符
Apr 07 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 ADODB使用方法集锦
2008/03/25 PHP
PHP 批量更新网页内容实现代码
2010/01/05 PHP
php中http_build_query 的一个问题
2012/03/25 PHP
PHP清除缓存的几种方法总结
2017/09/12 PHP
PHP中通过getopt解析GNU C风格命令行选项
2019/11/18 PHP
百度地图api应用标注地理位置信息(js版)
2013/02/01 Javascript
JS批量修改PS中图层名称的方法
2014/01/26 Javascript
js实现背景图片感应鼠标变化的方法
2015/02/28 Javascript
每天一篇javascript学习小结(基础知识)
2015/11/10 Javascript
基于canvas实现的钟摆效果完整实例
2016/01/26 Javascript
node.js微信公众平台开发教程
2016/03/04 Javascript
Jquery为DIV添加click事件的简单实例
2016/06/02 Javascript
AngularJS 依赖注入详解和简单实例
2016/07/28 Javascript
在JavaScript中调用Java类和接口的方法
2016/09/07 Javascript
ES6通过babel转码使用webpack使用import关键字
2016/12/13 Javascript
AngularJS的ng-repeat指令与scope继承关系实例详解
2017/01/21 Javascript
JS之if语句对接事件动作逻辑(详解)
2017/06/28 Javascript
微信小程序 自定义消息提示框
2017/08/06 Javascript
浅入深出Vue之组件使用
2019/07/11 Javascript
JavaScript禁止右击保存图片,禁止拖拽图片的实现代码
2020/04/28 Javascript
python获得图片base64编码示例
2014/01/16 Python
跟老齐学Python之玩转字符串(2)更新篇
2014/09/28 Python
Python实现二叉堆
2016/02/03 Python
Python 实现数据结构-堆栈和队列的操作方法
2019/07/17 Python
python使用 request 发送表单数据操作示例
2019/09/25 Python
python网络爬虫 Scrapy中selenium用法详解
2019/09/28 Python
python飞机大战pygame游戏背景设计详解
2019/12/17 Python
暑期社会实践方案
2014/02/05 职场文书
观看《永远的雷锋》心得体会
2014/03/12 职场文书
2014高考励志标语
2014/06/05 职场文书
2014年艾滋病防治工作总结
2014/12/10 职场文书
2019个人半年工作总结
2019/06/21 职场文书
CSS3新特性详解(五):多列columns column-count和flex布局
2021/04/30 HTML / CSS
mysql数据库入门第一步之创建表
2021/05/14 MySQL
vue实现省市区联动 element-china-area-data插件
2022/04/22 Vue.js
Apache自带的ab压力测试工具的实现
2022/07/23 Servers