详解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 相关文章推荐
利用QT写一个极简单的图形化Python闹钟程序
Apr 07 Python
Python使用xlrd模块操作Excel数据导入的方法
May 26 Python
在Django的上下文中设置变量的方法
Jul 20 Python
python批量替换页眉页脚实例代码
Jan 22 Python
python爬虫爬取快手视频多线程下载功能
Feb 28 Python
Python 3.x 判断 dict 是否包含某键值的实例讲解
Jul 06 Python
python二进制文件的转译详解
Jul 03 Python
pandas DataFrame创建方法的方式
Aug 02 Python
解决在pycharm运行代码,调用CMD窗口的命令运行显示乱码问题
Aug 23 Python
Python任务调度利器之APScheduler详解
Apr 02 Python
利用Python pandas对Excel进行合并的方法示例
Nov 04 Python
Python可视化神器pyecharts绘制地理图表
Jul 07 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旋转图片90度的方法
2013/11/07 PHP
PHP通过bypass disable functions执行系统命令的方法汇总
2018/05/02 PHP
在浏览器窗口上添加遮罩层的方法
2012/11/12 Javascript
jQuery异步验证用户名是否存在示例代码
2014/05/21 Javascript
Javascript技术栈中的四种依赖注入详解
2016/02/23 Javascript
微信jssdk用法汇总
2016/07/16 Javascript
基于jQuery实现手风琴菜单、层级菜单、置顶菜单、无缝滚动效果
2017/07/20 jQuery
基于jstree使用AJAX请求获取数据形成树
2017/08/29 Javascript
Web开发使用Angular实现用户密码强度判别的方法
2017/09/27 Javascript
Express的HTTP重定向到HTTPS的方法
2018/06/06 Javascript
vxe-table vue table 表格组件功能
2019/05/26 Javascript
angularjs请求数据的方法示例
2019/08/06 Javascript
[52:09]2014 DOTA2华西杯精英邀请赛 5 25 NewBee VS DK第二场
2014/05/26 DOTA
Python标准库之循环器(itertools)介绍
2014/11/25 Python
Python中的pprint折腾记
2015/01/21 Python
python模拟Django框架实例
2016/05/17 Python
Python3实现获取图片文字里中文的方法分析
2018/12/13 Python
如何使用Python 打印各种三角形
2019/06/28 Python
python爬虫解决验证码的思路及示例
2019/08/01 Python
Python使用import导入本地脚本及导入模块的技巧总结
2019/08/07 Python
python画微信表情符的实例代码
2019/10/09 Python
Windows 下更改 jupyterlab 默认启动位置的教程详解
2020/05/18 Python
Veronica Beard官网:在酷、经典和别致之间找到了平衡
2018/01/11 全球购物
车间副主任岗位职责
2013/12/24 职场文书
学校安全工作制度
2014/01/19 职场文书
保密工作目标责任书
2014/07/28 职场文书
捐款活动总结
2014/08/27 职场文书
党的群众路线教育实践活动个人对照检查材料(医生)
2014/11/05 职场文书
亲属关系公证书样本
2015/01/23 职场文书
《海上日出》教学反思
2016/02/23 职场文书
创业项目(超低成本创业项目)
2019/08/16 职场文书
毕业生自荐求职信书写的技巧
2019/08/26 职场文书
vue3中的组件间通信
2021/03/31 Vue.js
Python标准库之typing的用法(类型标注)
2021/06/02 Python
详解Python requests模块
2021/06/21 Python
如何解决springcloud feign 首次调用100%失败的问题
2021/06/23 Java/Android