主要讨论两个问题,第一个是关于json.dumps 与jsonify区别,第二个是几种异步的区别(见jQuery中的$.getJSON、$.ajax、$.get、$.post的区别)。

json.dumps()和jsonify()的区别

  • 使用方法不同:

dumps和loads方法,来自json模块,而json模块是python中的,可以直接导入:

  1. import json

而jsonify是flask封装的扩展包

  1. from flask import jsonify
  • 作用不同:

①dumps()和loads()

json.dumps():把字典转成json字符串,

json.loads():把json字符串转成字典

他们操作的都是变量(变量是存储在内存中的)。

②jsonify

字典转成json字符串

  • 效果不同:

①json.dumps()查看响应信息(Content-Type:响应内容的类型):Content-Type:text/heml;charset=utf-8

②jsonify查看浏览器响应信息(Content-Type:响应内容的类型):Content-Type: application/json

相关代码如下:

新建flask项目,建立一个app.py文件,代码如下:

  1. # coding: utf-8
  2. from flask import Flask, render_template, url_for, request, json, jsonify
  3. from flask_bootstrap import Bootstrap
  4.  
  5. app = Flask(__name__)
  6. app.config['JSON_AS_ASCII'] = False
  7.  
  8. @app.route('/form_data', methods=['GET', 'POST'])
  9. def form_data():
  10. if request.method=='GET':
  11. username = request.args.get("username")
  12. #dumps和loads方法,来自json模块,而json模块是python中的,可以直接导入:
  13. #而jsonify是flask封装的扩展包
  14. return jsonify({'status': '', 'username': username, 'errmsg': '登录成功!'})
  15. else:
  16. username = request.form['username']
  17. return jsonify({'status': '', 'username': username, 'errmsg': '登录成功!'})
  18.  
  19. @app.route('/')
  20. def index():
  21. return render_template('test.html')
  22.  
  23. if __name__ == '__main__':
  24. app.run(debug=True)

再在templates文件夹下新建test.html文件,代码如下:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. </head>
  7. <body>
  8. <form action='{{ url_for('form_data') }}' method="POST">
  9. <input name="username" type="text"/>
  10. <input type="submit">
  11.  
  12. </form>
  13. <Br>
  14. <input type="button" name="sendjson" value="提交" id="sendjson">
  15. <div id="myDiv"></div>
  16. <script src="https://code.jquery.com/jquery-3.4.0.min.js"></script>
  17. <script>
  18. $("#sendjson").click(function () {
  19. params = {"username": "lisi"}
  20.  
  21. {#$.getJSON("{{ url_for('form_data') }}",params, function (result) {#}
  22. {# $("#myDiv").append("hello world1");#}
  23. {# console.log(obj.username + "<br>");#}
  24. {# });#}
  25.  
  26. {#$.ajax({#}
  27. {# "url": "{{ url_for('form_data') }}",#}
  28. {# "type": "POST",#}
  29. {# "data": params,#}
  30. {# "success": function (obj) {#}
  31. {# $("#myDiv").append("hello world")#}
  32. {# console.log(obj.username + "<br>")#}
  33. {# },#}
  34. {# "error": function (obj) {#}
  35. {# console.log(obj)#}
  36. {# },#}
  37. {# "dataType": "json",#}
  38. {# "async": true#}
  39. {# });#}
  40.  
  41. {#$.get("{{ url_for('form_data') }}", params, function (obj) {#}
  42. {# $("#myDiv").append("hello world")#}
  43. {# console.log(obj.username + "<br>");#}
  44. {# }, "json");#}
  45.  
  46. $.post("{{ url_for('form_data') }}", params, function (obj) {
  47. $("#myDiv").append(obj.username + "<br>")
  48. console.log(obj);
  49. }, "json");
  50. })
  51. {#$('#sendjson').bind('click', submit_form);#}
  52. </script>
  53. </body>
  54. </html>

案例截图:

返回结果:

参考:dumps与jsonify区别 ajax异步函数参考

Flask(python)异步(ajax)返回json格式数据的更多相关文章

  1. springmvc通过ajax异步请求返回json格式数据

    jsp 首先创建index.jsp页面 <script type="text/javascript"> $(function () { $("#usernam ...

  2. var dataObj=eval("("+data+")");//转换为json对象(解决在ajax返回json格式数据的时候明明正确的获取了返回值但是却就是进不去success方法的问题。格式错误)

    一,原理 1.1,解析1 将字符串解析为JavaScript代码,比如:var a = "alert('a');";这里的a就只是一个字符串而已,输出的话也是alert(a);这句 ...

  3. 使用jQuery发送POST,Ajax请求返回JSON格式数据

    问题: 使用jQuery POST提交数据到PHP文件, PHP返回的json_encode后的数组数据,但jQuery接收到的数据不能解析为JSON对象,而是字符串{"code" ...

  4. 使用getJSON()方法异步加载JSON格式数据

    使用getJSON()方法异步加载JSON格式数据 使用getJSON()方法可以通过Ajax异步请求的方式,获取服务器中的数组,并对获取的数据进行解析,显示在页面中,它的调用格式为: jQuery. ...

  5. springmvc4.0配置ajax请求json格式数据

    1.导入相关jar包:jackson-annotation-2.5.4.jar,jackson-core-2.5.4.jar,jackson-databind-2.5.4.jar. 2.spring- ...

  6. WebService返回json格式数据供苹果或者安卓程序调用

    1.新建一个WebService. 2. /// <summary> /// DemoToJson 的摘要说明 /// </summary> [WebService(Names ...

  7. Django 1.8.11 查询数据库返回JSON格式数据

    Django 1.8.11 查询数据库返回JSON格式数据 和前端交互全部使用JSON,如何将数据库查询结果转换成JSON格式 环境 Win10 Python2.7 Django 1.8.11 返回多 ...

  8. Spring MVC 学习笔记11 —— 后端返回json格式数据

    Spring MVC 学习笔记11 -- 后端返回json格式数据 我们常常听说json数据,首先,什么是json数据,总结起来,有以下几点: 1. JSON的全称是"JavaScript ...

  9. 返回json格式数据乱码

    本文为博主原创,未经允许不得转载: 原本返回json格式数据的代码: @ResponseBody @RequestMapping(value = "getListByTime", ...

  10. ajax请求后台,返回json格式数据,模板!

    添加一个用户的时候,需要找出公司下所有的部门,和相应部门下的角色,利用ajax请求,实现联动技术.将返回的json格式数据,添加到select标签下. <script type="te ...

随机推荐

  1. POJ 1556 The Doors(线段相交+最短路)

    题目: Description You are to find the length of the shortest path through a chamber containing obstruc ...

  2. django 连接mangodb 操作

    django项目连接MySQL需要配置很多东西,连接mango并不需要配置任何.

  3. 【剑指offer】【python】面试题2~5

    使用python实现<剑指offer>面试题ヾ(◍°∇°◍)ノ゙,以此记录. 2_实现Singleton模式 题目:实现单例模式 单例模式,是一种常用的软件设计模式.在它的核心结构中只包含 ...

  4. drf版本控制 和django缓存,跨域问题,

    drf版本控制 基于url的get传参方式 REST_FRAMEWORK={ # "DEFAULT_AUTHENTICATION_CLASSES":["app01.aut ...

  5. 面试容易问到的Linux问题

    1.有没有使用过linux?用来干什么? Linux是一个长时间运行比较稳定的操作系统,我们一般会拿它作为服务器. 一下软件(redis等)没有软件包,需要在linux的C编译环境下编译得到软件包. ...

  6. 分享一个学习的网站:每天会有大量AI相关的干货(论文分享,行业动态,相关竞赛经验分享等)http://www.deepsmart.ai/

    网址:http://www.deepsmart.ai/ 微信公众号如下:

  7. type=file的inpu美化,自定义上传按钮样式

    <div class="div1"> <div class="div2">点击上传</div> <input type ...

  8. 提取C3D视频特征(官方文档&实践)

    C3D Introduction 卷积神经网络(CNN)近年被广泛应用于计算机视觉中,包括分类.检测.分割等任务.这些任务一般都是针对图像进行的,使用的是二维卷积(即卷积核的维度为二维).而基于视频的 ...

  9. 微信小程序--家庭记账本开发--02

    代码文件的了解 对于一个程序的开发,代码的了解的必须的,不同的后缀名文件有着不同的作用,通过学习,对于微信小程序开发中的文件有了自己的理解. 文件概述 一个微信小程序一般有有pages文件夹,util ...

  10. 微信小程序--家庭记账本开发--01

    微信小程序的开发准备与开发工具的学习 在这次寒假伊始,临近春节,学习进程有所拉下,现在补上.寻找了好多网站的相关学习视频,包括微信公众平台关于小程序这方面也有好多相关资料供查阅. 1.开发准备: 首先 ...