一.通用方式

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

前端html

  1. <form method="post" action="/mockservice" method = "post">
  2. ...
  3.  
  4. <div class="form-group">
  5. <label>data <font style="color:#a94442" size="2">
  6. <input class="form-control" id="data" name="data">
  7. </div>
  8. <div class="form-group">
  9. <button id="start" type="submit" class="btn btn-default">Submit &nbsp</button>
  10. </div>
  11. </form>

将操作绑定

  1. $(document).ready(function() {
  2. MockTask.start();
  3. });
  4.  
  5. MockTask ={
  6. startId: "start_mock",
  7. start: function(){
  8. $('#'+this.startId).click(function (){
  9.         ...var data = $('#data').val();
  10.  
  11. var form_data = JSON.stringify({
  12. ..."data": data
  13. });
  14. MockSubmit.createTask(form_data);
  15.  
  16. });
  17. },
  18. };
  19.  
  20. MockSubmit = {
  21. createTask: function(data){
  22. var url = "/mockservice";
  23. $.post(url,data,function(result){
  24. if (result.code != 'SUCC'){
  25. alert("failed to create a new api.")
  26. } else {
  27. alert("succ");
  28. }
  29. });
  30. }
  31. };
  32.  
  33. function isEmptyString(info) {
  34. if (info == null || info == undefined || info.length == 0){
  35. return true;
  36. }
  37. return false
  38. }

这样通过js来实现提交表单的功能,然后flask后端

  1. @app.route("/mockservice",methods=['GET','POST'])
  2. def MockController():
  3. form = MockCreate()
  4. if request.method == 'POST':
  5. code = request.form['code']
  6. api = request.form['api']
  7. return ...

通用方式的好处就是在其他框架中也适用。而且也并不复杂。

二.比较正宗的flask方式

前端html:

  1. <form method="post" action="/mockservice" method = "post">
  2. ...
  3.  
  4. <div class="form-group">
  5. <label>data <font style="color:#a94442" size="2">
  6. <input class="form-control" id="data" name="data">
  7. </div>
  8. <div class="form-group">
  9. <button type="submit" class="btn btn-default">Submit &nbsp</button>
  10. </div>
  11. </form>

前端这时候可以不用绑定操作了,但需要新建一个form对象,用这种方式的好处就是flask有很多内置的方式帮你校验你的提交,一个字:省事!

  1. class MockCreate(Form):
  2. user_email = StringField("email address",[validators.Email()])
  3. api = StringField("api",[Required()])
  4. submit = SubmitField("Submit")
  5. code = IntegerField("code example: 200",[Required()])
  6. alias = StringField("alias for api")
  7. data = TextAreaField("json format",[Required()])

后端这时候就要变成:

  1. @app.route("/mockservice",methods=['GET','POST'])
  2. def MockController():
  3. form = MockCreate()
  4. code = form['code']
  5. api = form['api']
  6. return render_template("testf.html",api=api,data=code)

flask表单提交的两种方式的更多相关文章

  1. asp.net mvc表单提交的几种方式

    asp.net MVC中form提交和控制器接受form提交过来的数据 MVC中form提交和在控制器中怎样接受 1.cshtml页面form提交2.控制器处理表单提交数据4种方式方法1:使用传统的R ...

  2. Form 表单提交的几种方式

    简单的总结一下form表单提交的几种方式:1.最简单的方式 就用form的submit提交方式,这种提交方式是不需要回调函数的   这种方式最近到一个form提供action路径后台接受就可以< ...

  3. JS表单提交的几种方式

    第一种方式 : 表单提交,在 form 标签中增加 onsubmit 事件来判断表单是否提交成功 <script type="text/javascript"> fun ...

  4. js阻止表单提交的两种方法

    下面直接看代码. <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...

  5. 使用JS和JQuery 阻止表单提交的两种方法

    <html> <head> <meta http-equiv="Content-Type" content="text/html; char ...

  6. 表单提交的两种请求方式:post与get。post与get两者的对比分析

    post与get两者的对比分析:

  7. 表单提交的3种方式,http post的contentType

    application/x-www-form-urlencoded:窗体数据被编码为名称/值对.这是标准的编码格式.这是默认的方式 multipart/form-data:窗体数据被编码为一条消息,页 ...

  8. form表单提交的几种方法

    form表单提交的几种方法 <form id="myform" name="myform" method="post" onsubmi ...

  9. jquery ajax提交表单数据的两种方式

    http://www.kwstu.com/ArticleView/kwstu_201331316441313 貌似AJAX越来越火了,作为一个WEB程序开发者要是不会这个感觉就要落伍,甚至有可能在求职 ...

随机推荐

  1. MAVEN中的插件放在哪个dependcies里面

    如果你用maven来管理项目的话,你会发现你要依赖很多plugin,于是引出了一个问题. 一个project中可能有两个<dependcies>这个tag, 如下 <dependci ...

  2. 找window的三种方法

    LoginViewController * loginVC = [[LoginViewController alloc]init]; 找window的三种方式 1.// UIWindow * wind ...

  3. PHP操作mysql数据库:[2]查询数据听语音

    本文主要详细讲解如何使用php语言,对mysql数据库进行查询.添加.删除.更新等操作. 工具/原料   Macromedia Dreamweaver 8 mysql数据库,php语言 一.前言   ...

  4. Linux 折腾汇集,实时更新

    一.Linux教程 入门教程:http://www.92csz.com/study/linux/ 命令大全:http://man.linuxde.net/ 一.界面: 在Ubuntu.Linux Mi ...

  5. javascript-简单工厂两种实现方式

    简单工厂笔记 两种方式: 第一种:通过实例化对象创建 第二种:通过创建一个新对象然后包装增强其属性和功能来实现 差异性:前一种通过类创建的 对象,如果这些类继承同一个父类,他们父类原型上的方法是可以共 ...

  6. 电话薄设计--java

    package com.hanqi.telbook; import java.util.Scanner; public class Menu { //主菜单 public void mainMenu( ...

  7. request对象详解

    先来了解一下Request的主要方法: setAttribute(String name,Object):设置名字为name的request的参数值getAttribute(String name): ...

  8. Sql Server 添加外部程序集基本操作

    简介:有时候Sql Server的内置函数没有那么好用的时候,可以引用一下外部程序集,下面献下丑,做下添加外部程序集操作 1.准备程序,编译出一个MyCLR的DLL. public class CLR ...

  9. python基础(三)序列

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 谢谢thunder424纠错 sequence 序列 sequence(序列)是一 ...

  10. Linux信号

    信号本质上就是一个软件中断,它既可以作为两个进程间的通信的方式, 更重要的是, 信号可以终止一个正常程序的执行, 通常被用于处理意外情况 ,* 信号是异步的, 也就是进程并不知道信号何时会到达 $ki ...