详解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网络编程学习笔记(四):域名系统
Jun 09 Python
在Python下利用OpenCV来旋转图像的教程
Apr 16 Python
举例讲解Python中的身份运算符的使用方法
Oct 13 Python
Python随机数random模块使用指南
Sep 09 Python
Python实现字典按照value进行排序的方法分析
Dec 23 Python
python3.6使用pymysql连接Mysql数据库
May 25 Python
Python安装Flask环境及简单应用示例
May 03 Python
django框架forms组件用法实例详解
Dec 10 Python
关于pytorch中全连接神经网络搭建两种模式详解
Jan 14 Python
Python实现一个论文下载器的过程
Jan 18 Python
Python自动化测试基础必备知识点总结
Feb 07 Python
python turtle绘图
May 04 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
fetchAll()与mysql_fetch_array()的区别详解
2013/06/05 PHP
qq登录,新浪微博登录接口申请过程中遇到的问题
2014/07/22 PHP
PHP截取指定图片大小的方法
2014/12/10 PHP
php定义参数数量可变的函数用法实例
2015/03/16 PHP
WordPress中用于更新伪静态规则的PHP代码实例讲解
2015/12/18 PHP
js 加载并解析XML字符串的代码
2009/12/13 Javascript
Jquery异步请求数据实例代码
2011/12/28 Javascript
js 遍历对象的属性的代码
2011/12/29 Javascript
写得不错的jquery table鼠标经过变色代码
2013/09/27 Javascript
jquery改变tr背景色的示例代码
2013/12/28 Javascript
javascript抽象工厂模式详细说明
2014/12/16 Javascript
JavaScript中Date.toSource()方法的使用教程
2015/06/12 Javascript
AngularJS转换响应内容
2016/01/27 Javascript
搞定immutable.js详细说明
2016/05/02 Javascript
Google 地图叠加层实例讲解
2016/08/06 Javascript
AngularJS自定义指令详解(有分页插件代码)
2017/06/12 Javascript
在 Node.js 中使用 async 函数的方法
2017/11/17 Javascript
微信小程序实现tab和swiper切换结合效果
2020/07/17 Javascript
浅谈webpack 构建性能优化策略小结
2018/06/13 Javascript
深入理解JS异步编程-Promise
2019/06/03 Javascript
JavaScript实现的联动菜单特效示例
2019/07/08 Javascript
简单了解JavaScript arguement原理及作用
2020/05/28 Javascript
[58:57]2018DOTA2亚洲邀请赛3月29日小组赛B组 Effect VS VGJ.T
2018/03/30 DOTA
在Mac OS上搭建Python的开发环境
2015/12/24 Python
wxpython中自定义事件的实现与使用方法分析
2016/07/21 Python
Python利用逻辑回归模型解决MNIST手写数字识别问题详解
2020/01/14 Python
python数据库编程 Mysql实现通讯录
2020/03/27 Python
Pycharm中安装wordcloud等库失败问题及终端通过pip安装的Python库如何添加到Pycharm解释器中(推荐)
2020/05/10 Python
松下电器美国官方商店:Panasonic美国
2016/10/14 全球购物
Surfdome西班牙:世界上最受欢迎的生活方式品牌
2019/02/13 全球购物
犯错检讨书
2014/02/21 职场文书
大学应届生的自我评价
2014/03/06 职场文书
医药销售自我评价200字
2014/09/11 职场文书
2016班级元旦联欢会开幕词
2016/03/04 职场文书
辞职信怎么写?
2019/05/21 职场文书
【海涛教你打DOTA】剑圣第一人称视角解说
2022/04/01 DOTA