详解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挑选文件夹里宽大于300图片的方法
Mar 05 Python
Python迭代器和生成器介绍
Mar 06 Python
讲解Python中fileno()方法的使用
May 24 Python
python 爬取微信文章
Jan 30 Python
浅谈python中set使用
Jun 30 Python
Python字符编码与函数的基本使用方法
Sep 30 Python
使用python装饰器计算函数运行时间的实例
Apr 21 Python
python实现多层感知器
Jan 18 Python
Python实现的微信红包提醒功能示例
Aug 22 Python
Pytorch 计算误判率,计算准确率,计算召回率的例子
Jan 18 Python
基于Python生成个性二维码过程详解
Mar 05 Python
Python3接口性能测试实例代码
Jun 20 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读取大文件的类SplFileObject使用介绍
2014/04/09 PHP
Save a File Using a File Save Dialog Box
2007/06/18 Javascript
解决jQuery插件tipswindown与hintbox冲突
2010/11/05 Javascript
JavaScript 一道字符串分解的题目
2011/08/03 Javascript
基于jquery的放大镜效果
2012/05/30 Javascript
如何使用jQUery获取选中radio对应的值(一句代码)
2013/06/03 Javascript
jquery实现在页面加载的时自动为日期插件添加当前日期
2014/08/20 Javascript
javascript等号运算符使用详解
2015/04/16 Javascript
javascript数组去重方法汇总
2015/04/23 Javascript
jQuery 中的 DOM 操作
2016/04/26 Javascript
jQuery的ajax和遍历数组json实例代码
2016/08/01 Javascript
JS刷新父窗口的几种方式小结(推荐)
2016/11/09 Javascript
BootStrap实现鼠标悬停下拉列表功能
2017/02/17 Javascript
CentOS 安装NodeJS V8.0.0的方法
2017/06/15 NodeJs
浅析Javascript中双等号(==)隐性转换机制
2017/10/27 Javascript
详解如何在react中搭建d3力导向图
2018/01/12 Javascript
微信小程序实现弹出菜单
2018/07/19 Javascript
[02:20]DOTA2亚洲邀请赛 IG战队出场宣传片
2015/02/07 DOTA
[48:00]EG vs LGD 2018国际邀请赛淘汰赛BO3 第二场 8.26
2018/08/29 DOTA
Python之reload流程实例代码解析
2018/01/29 Python
解决Python3中的中文字符编码的问题
2018/07/18 Python
python制作图片缩略图
2019/04/30 Python
python实现简单聊天室功能 可以私聊
2019/07/12 Python
TensorFlow中如何确定张量的形状实例
2020/06/23 Python
wedgwood加拿大官网:1759年成立的英国国宝级陶瓷餐具品牌
2018/07/17 全球购物
定义一结构体变量,用其表示点坐标,并输入两点坐标,求两点之间的距离
2015/08/17 面试题
一篇.NET面试题
2014/09/29 面试题
经典优秀毕业生求职信范文分享
2013/12/18 职场文书
幸福家庭事迹材料
2014/02/03 职场文书
机电专业求职信
2014/06/14 职场文书
房屋过户委托书范本
2014/10/07 职场文书
招商引资工作汇报材料
2014/10/28 职场文书
出国留学自荐信模板
2015/03/06 职场文书
解决Navicat for Mysql连接报错1251的问题(连接失败)
2021/05/27 MySQL
python单向链表实例详解
2022/05/25 Python
Python first-order-model实现让照片动起来
2022/06/25 Python