一.通用方式

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

前端html

...

data

Submit &nbsp

将操作绑定

$(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:

...

data

Submit &nbsp

前端这时候可以不用绑定操作了,但需要新建一个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表单提交的两种方式_详解flask表单提交的两种方式相关推荐

  1. vue动态设置文字布局方式_详解Vue动态添加模板的几种方法

    动态添加模板需要收集原始数据的页面,这个时候我们需要很多原始数据收集模板,下面给大家详解Vue 动态添加模板的几种方法,希望对你学习这方面知识有所帮助. 通常我们会在组件里的 template 属性定 ...

  2. js求两圆交点_详解js实现线段交点的三种算法

    本文讲的内容都很初级, 主要是面向和我一样的初学者, 所以请各位算法帝们轻拍啊 引用 已知线段1(a,b) 和线段2(c,d) ,其中a b c d为端点, 求线段交点p .(平行或共线视作不相交) ...

  3. sh执行文件 参数传递_详解shell中脚本参数传递的两种方式

    方式一:$0,$1,$2.. 采用$0,$1,$2..等方式获取脚本命令行传入的参数,值得注意的是,$0获取到的是脚本路径以及脚本名,后面按顺序获取参数,当参数超过10个时(包括10个),需要使用${ ...

  4. js定义全局变量 vue页面_详解Vue.js 定义全局变量的几种实现方式

    详解Vue.js 定义全局变量的几种实现方式 发布于 2020-8-11| 复制链接 本篇文章主要介绍了VUE 全局变量的几种实现方式,小妖觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小妖 ...

  5. python怎么下载图片怎么保存到本地_详解Python下载图片并保存本地的两种方式

    一:使用Python中的urllib类中的urlretrieve()函数,直接从网上下载资源到本地,具体代码: import os,stat import urllib.request img_url ...

  6. 详解python运行三种方式_详解python运行三种方式

    方式一 交互式编程 交互式编程不需要创建脚本文件,是通过 Python 解释器的交互模式进来编写代码. linux上你只需要在命令行中输入 Python 命令即可启动交互式编程,提示窗口如下: $ p ...

  7. python中有那几种赋值_详解Python列表赋值复制深拷贝及5种浅拷贝

    概述 在列表复制这个问题,看似简单的复制却有着许多的学问,尤其是对新手来说,理所当然的事情却并不如意,比如列表的赋值.复制.浅拷贝.深拷贝等绕口的名词到底有什么区别和作用呢? 列表赋值 # 定义一个新 ...

  8. python 窗口控件变大变小_详解:用Python+AutoIt实现界面工具开发过程

    前言: 今天为大家带来的内容是,详解:Python+AutoIt实现界面工具开发过程!(部分代码用图片方式呈现出来,方便各位观看与收藏) AutoIt简述 AutoIt一个使用类似BASIC脚本语言的 ...

  9. mysql表空间过大_详解MySQL表空间以及ibdata1文件过大问题

    ibdata1文件过大 原因分析 ibdata1是一个用来构建innodb系统表空间的文件,关于系统表空间详细介绍参考MySQL官网文档 上面是一个数据库的ibdata1文件,达到了780多G,而且还 ...

最新文章

  1. 习题2-5 求平方根序列前N项和 (15 分)
  2. ubuntu16.04下ROS最新换源方法,解决Hash sum mismatch 问题
  3. 能“预测未来”的AI来了!谷歌DeepMind推Dreamer,训练时间减半
  4. 移动vue项目,启动错误:Module build failed: Error: No PostCSS Config found in:
  5. 【笔记篇】C#笔记1
  6. (Q 2)netstat命令 检测TCP/IP 网络链接是否存在异常
  7. atlas mysql 读写分离_MySQL读写分离工具Atlas
  8. 算法导论水壶问题(第三版第八章思考题8-4)
  9. 搭建一个简单的Spring boot+maven项目
  10. Spring:@AutoConfigurexxx注解-控制配置类的加载顺序
  11. Redis简单入门认识
  12. 爬虫中无头浏览器如何选择
  13. python画航线图_pyecharts绘制geo地图
  14. 计算机网络中sep是什么意思,SEP系统介绍及实施方案介绍.ppt
  15. 接连倒闭失联的背后 传统健身房生意为什么突然就不行了?
  16. JS买卖股票的时机含手续费 LeetCode714
  17. Unity+高通Vuforia SDK——AR
  18. html、css 实现一个漂亮的表格
  19. TLP:一个可以延长 Linux 笔记本电池寿命的高级电源管理工具
  20. k8s yaml资源清单格式

热门文章

  1. Webpack系列-第一篇基础杂记
  2. ajax按钮改变数据状态
  3. Tomcat 源码阅读记录(1)
  4. Axis2 客户端调用 设置超时时间
  5. DELL R720安装REDHAT5.1 RAID驱动问题
  6. (二)阅读器客户端开发实战_需求阐述
  7. jQuery如何得到tagName?
  8. 【转】深入研究java.lang.Class类
  9. Visual Studio 6.0编译PWLib1.12总结
  10. linux 压缩 解压 命令大全