详解flask表单提交的两种方式


Posted in Python onJuly 21, 2018

一.通用方式

通用方式就是使用ajax或者$.post来提交。

前端html

<form method="post" action="/mockservice" method = "post">
   ... 

  <div class="form-group">
    <label>data <font style="color:#a94442" size="2">
    <input class="form-control" id="data" name="data">
  </div>
  <div class="form-group">
    <button id="start" type="submit" class="btn btn-default">Submit  </button>
  </div>
</form>

将操作绑定

$(document).ready(function() {
  MockTask.start();
});

MockTask ={
  startId: "start_mock",
  start: function(){
    $('#'+this.startId).click(function (){



...var data = $('#data').val();

      var form_data = JSON.stringify({
       ..."data": data
      });
      MockSubmit.createTask(form_data);

    });
  },
};

MockSubmit = {
  createTask: function(data){
    var url = "/mockservice";
    $.post(url,data,function(result){
      if (result.code != 'SUCC'){
        alert("failed to create a new api.")
      } else {
        alert("succ");
      }
    });
  }
};

function isEmptyString(info) {
  if (info == null || info == undefined || info.length == 0){
    return true;
  }
  return false
}

这样通过js来实现提交表单的功能,然后flask后端

@app.route("/mockservice",methods=['GET','POST'])
def MockController():
  form = MockCreate()
  if request.method == 'POST':
    code = request.form['code']
    api = request.form['api']
  return ...

通用方式的好处就是在其他框架中也适用。而且也并不复杂。

二.比较正宗的flask方式

前端html:

<form method="post" action="/mockservice" method = "post">
   ...

  <div class="form-group">
    <label>data <font style="color:#a94442" size="2">
    <input class="form-control" id="data" name="data">
  </div>
  <div class="form-group">
    <button type="submit" class="btn btn-default">Submit  </button>
  </div>
</form>

前端这时候可以不用绑定操作了,但需要新建一个form对象,用这种方式的好处就是flask有很多内置的方式帮你校验你的提交,一个字:省事!

class MockCreate(Form):
  user_email = StringField("email address",[validators.Email()])
  api = StringField("api",[Required()])
  submit = SubmitField("Submit")
  code = IntegerField("code example: 200",[Required()])
  alias = StringField("alias for api")
  data = TextAreaField("json format",[Required()])

后端这时候就要变成:

@app.route("/mockservice",methods=['GET','POST'])
def MockController():
  form = MockCreate()
  code = form['code']
  api = form['api']
  return render_template("testf.html",api=api,data=code)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
利用Python演示数型数据结构的教程
Apr 03 Python
Python实现比较两个文件夹中代码变化的方法
Jul 10 Python
python中redis的安装和使用
Dec 04 Python
让python 3支持mysqldb的解决方法
Feb 14 Python
PyQt5每天必学之滑块控件QSlider
Apr 20 Python
Django处理文件上传File Uploads的实例
May 28 Python
Python实现获取本地及远程图片大小的方法示例
Jul 21 Python
Python循环中else,break和continue的用法实例详解
Jul 11 Python
PyQt5实现登录页面
May 30 Python
Pytorch mask-rcnn 实现细节分享
Jun 24 Python
删除pycharm鼠标右键快捷键打开项目的操作
Jan 16 Python
用Python制作灯光秀短视频的思路详解
Apr 13 Python
python实现周期方波信号频谱图
Jul 21 #Python
Flask-Mail用法实例分析
Jul 21 #Python
python实现傅里叶级数展开的实现
Jul 21 #Python
Python实现快速傅里叶变换的方法(FFT)
Jul 21 #Python
Python实现获取本地及远程图片大小的方法示例
Jul 21 #Python
opencv python 傅里叶变换的使用
Jul 21 #Python
Numpy中的mask的使用
Jul 21 #Python
You might like
php下将XML转换为数组
2010/01/01 PHP
php过滤html标记属性类用法实例
2014/09/23 PHP
thinkphp关于简单的权限判定方法
2017/04/03 PHP
PHP和MYSQL实现分页导航思路详解
2017/04/11 PHP
thinkphp5实现微信扫码支付
2019/12/23 PHP
关于query Javascript CSS Selector engine
2013/04/12 Javascript
jquery的flexigrid无法显示数据提示获取到数据
2013/07/19 Javascript
JQuery触发事件例如click
2013/09/11 Javascript
jQuery学习笔记之jQuery原型属性和方法
2014/06/09 Javascript
《JavaScript高级编程》学习笔记之object和array引用类型
2015/11/01 Javascript
jquery ui dialog替代confirm实例分析
2016/01/25 Javascript
微信小程序 自己制作小组件实例详解
2016/12/22 Javascript
vue+axios 前端实现登录拦截的两种方式(路由拦截、http拦截)
2018/10/24 Javascript
vue中配置scss全局变量的步骤
2020/12/28 Vue.js
Handtrack.js库实现实时监测手部运动(推荐)
2021/02/08 Javascript
Python警察与小偷的实现之一客户端与服务端通信实例
2014/10/09 Python
python自动格式化json文件的方法
2015/03/11 Python
Python的Django中将文件上传至七牛云存储的代码分享
2016/06/03 Python
Python 找到列表中满足某些条件的元素方法
2018/06/26 Python
Python opencv实现人眼/人脸识别以及实时打码处理
2019/04/29 Python
Python中字典与恒等运算符的用法分析
2019/08/22 Python
关于ResNeXt网络的pytorch实现
2020/01/14 Python
PyQt5 界面显示无响应的实现
2020/03/26 Python
简单了解Django项目应用创建过程
2020/07/06 Python
英国领先的独立酒精饮料零售商:DrinkSupermarket
2021/01/13 全球购物
就业协议书怎么填
2014/04/11 职场文书
个人授权委托书模板
2014/09/14 职场文书
销售合作意向书范本
2015/05/08 职场文书
休学证明范本
2015/06/19 职场文书
唱歌比赛拉拉队口号
2015/12/25 职场文书
2016天猫双十一广告语
2016/01/28 职场文书
你喜欢篮球吗?Python实现篮球游戏
2021/06/11 Python
实现一个简单得数据响应系统
2021/11/11 Javascript
Python经常使用的一些内置函数
2022/04/11 Python
Tomcat配置访问日志和线程数
2022/05/06 Servers
JS前端轻量fabric.js系列物体基类
2022/08/05 Javascript