详解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爬虫常用的模块分析
Aug 29 Python
Python中函数及默认参数的定义与调用操作实例分析
Jul 25 Python
Python抓取框架Scrapy爬虫入门:页面提取
Dec 01 Python
python使用循环打印所有三位数水仙花数的实例
Nov 13 Python
Django 响应数据response的返回源码详解
Aug 06 Python
Python3批量移动指定文件到指定文件夹方法示例
Sep 02 Python
python图像处理模块Pillow的学习详解
Oct 09 Python
Matplotlib绘制雷达图和三维图的示例代码
Jan 07 Python
Django实现任意文件上传(最简单的方法)
Jun 03 Python
Python实现文件压缩和解压的示例代码
Aug 12 Python
Python基础之tkinter图形化界面学习
Apr 29 Python
浅谈Python中的正则表达式
Jun 28 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中使用Oracle数据库(6)
2006/10/09 PHP
js限制checkbox勾选的个数以及php获取多个checkbbox的方法深入解析
2013/07/18 PHP
php动态函数调用方法
2015/05/21 PHP
PHP Imagick完美实现图片裁切、生成缩略图、添加水印
2016/02/22 PHP
PHP Try-catch 语句使用技巧
2016/02/28 PHP
解析PHP的Yii框架中cookie和session功能的相关操作
2016/03/17 PHP
PHP防止sql注入小技巧之sql预处理原理与实现方法分析
2019/12/13 PHP
JavaScript CSS修改学习第二章 样式
2010/02/19 Javascript
IE6、IE7中获取Button元素的值的bug说明
2011/08/28 Javascript
javascript实现避免页面按钮重复提交
2015/01/08 Javascript
jquery获取select,option所有的value和text的实例
2017/03/06 Javascript
layer 刷新某个页面的实现方法
2019/09/05 Javascript
python通过apply使用元祖和列表调用函数实例
2015/05/26 Python
vscode 远程调试python的方法
2017/12/01 Python
python3+PyQt5实现拖放功能
2018/04/24 Python
详解Python 数据库的Connection、Cursor两大对象
2018/06/25 Python
pyqt5的QComboBox 使用模板的具体方法
2018/09/06 Python
对Python通过pypyodbc访问Access数据库的方法详解
2018/10/27 Python
dataframe 按条件替换某一列中的值方法
2019/01/29 Python
Python使用ctypes调用C/C++的方法
2019/01/29 Python
Python中dict和set的用法讲解
2019/03/28 Python
PyQt5 QTable插入图片并动态更新的实例
2019/06/18 Python
django使用django-apscheduler 实现定时任务的例子
2019/07/20 Python
Python 异常的捕获、异常的传递与主动抛出异常操作示例
2019/09/23 Python
python 用opencv实现图像修复和图像金字塔
2020/11/27 Python
快速解决pymongo操作mongodb的时区问题
2020/12/05 Python
英国儿童设计师服装和玩具购物网站:Zac & Lulu
2020/10/19 全球购物
ShellScript面试题一则-ShellScript编程
2014/06/24 面试题
网友共享的几个面试题关于Java和Unix等方面的
2016/09/08 面试题
Java中的异常处理机制的简单原理和应用
2013/04/27 面试题
学校课外活动总结
2014/05/08 职场文书
关于读书的演讲稿300字
2014/08/27 职场文书
搞笑的爱情检讨书
2014/10/01 职场文书
如何写通讯稿
2015/07/22 职场文书
2016年综治宣传月活动宣传标语口号
2016/03/16 职场文书
Mysql中有关Datetime和Timestamp的使用总结
2021/12/06 MySQL