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

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

  • 使用方法不同:

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

import json

而jsonify是flask封装的扩展包

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文件,代码如下:

# coding: utf-8
from flask import Flask, render_template, url_for, request, json, jsonify
from flask_bootstrap import Bootstrap app = Flask(__name__)
app.config['JSON_AS_ASCII'] = False @app.route('/form_data', methods=['GET', 'POST'])
def form_data():
if request.method=='GET':
username = request.args.get("username")
#dumps和loads方法,来自json模块,而json模块是python中的,可以直接导入:
#而jsonify是flask封装的扩展包
return jsonify({'status': '', 'username': username, 'errmsg': '登录成功!'})
else:
username = request.form['username']
return jsonify({'status': '', 'username': username, 'errmsg': '登录成功!'}) @app.route('/')
def index():
return render_template('test.html') if __name__ == '__main__':
app.run(debug=True)

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

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action='{{ url_for('form_data') }}' method="POST">
<input name="username" type="text"/>
<input type="submit"> </form>
<Br>
<input type="button" name="sendjson" value="提交" id="sendjson">
<div id="myDiv"></div>
<script src="https://code.jquery.com/jquery-3.4.0.min.js"></script>
<script>
$("#sendjson").click(function () {
params = {"username": "lisi"} {#$.getJSON("{{ url_for('form_data') }}",params, function (result) {#}
{# $("#myDiv").append("hello world1");#}
{# console.log(obj.username + "<br>");#}
{# });#} {#$.ajax({#}
{# "url": "{{ url_for('form_data') }}",#}
{# "type": "POST",#}
{# "data": params,#}
{# "success": function (obj) {#}
{# $("#myDiv").append("hello world")#}
{# console.log(obj.username + "<br>")#}
{# },#}
{# "error": function (obj) {#}
{# console.log(obj)#}
{# },#}
{# "dataType": "json",#}
{# "async": true#}
{# });#} {#$.get("{{ url_for('form_data') }}", params, function (obj) {#}
{# $("#myDiv").append("hello world")#}
{# console.log(obj.username + "<br>");#}
{# }, "json");#} $.post("{{ url_for('form_data') }}", params, function (obj) {
$("#myDiv").append(obj.username + "<br>")
console.log(obj);
}, "json");
})
{#$('#sendjson').bind('click', submit_form);#}
</script>
</body>
</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. 获取搜索结果的真实URL、描述、标题

    1.场景 爬虫练手代码 2.代码 Python2: #!/usr/bin/python # -*- coding:utf-8 -*- import requests from lxml import ...

  2. Redis 如何实现持久化

    1.RDB 持久化,将 Redis 在内存中的的状态保存到硬盘中,相当于备份数据库状态. 2.AOF 持久化(Append-Only-File),AOF 持久化是通过保存 Redis 服务器锁执行的写 ...

  3. pyhton图片合成模块-PIL

    文章链接:https://www.cnblogs.com/lilinwei340/p/6474170.html python PIL实现图片合成   在项目中需要将两张图片合在一起.遇到两种情况,一种 ...

  4. 计算机基础 & python基础

    五大组成部分 控制器 运算器(数学运算+逻辑运算) 存储器(存取数据) 输入设备(键盘.鼠标等) 输出设备(显示器.打印机等) CPU CPU=运算器+控制器 CPU的分类: 精简指令集(RISC): ...

  5. loadrunner之java user脚本开发

    脚本开发环境: loadrunner11.0 jdk1.6.32_x86_32 脚本开发 1.选择JavaVuser协议 2.配置java环境(Vuser--RunTime Settings) 3.开 ...

  6. Promise和setTimeout执行顺序 面试题

    看到过下面这样一道题: (function test() { setTimeout(function() {console.log(4)}, 0); new Promise(function exec ...

  7. InfluxDB——python使用手册

    InfluxDB--python使用手册 准备工作 安装InfluxDB: 请参考笔者相关博文:Centos7安装InfluxDB1.7 安装pip : yum install python-pip ...

  8. Python网络爬虫之三种数据解析方式

    1. 正则解析 正则例题 import re # string1 = """<div>静夜思 # 窗前明月光 # 疑是地上霜 # 举头望明月 # 低头思故乡 ...

  9. Chapter 2 Basic Elements of JAVA

    elaborate:详细说明 Data TypesJava categorizes data into different types, and only certain operationscan ...

  10. Do-Now—团队Scrum 冲刺博客二

    各个成员今日完成的任务 侯泽洋:完成奖励页面设计,完成奖励从云端拉取到本地:完成奖励从云端拉取到本地 周亚杰:完成个人中心页面设计,登录界面美化:注册登录界面美化 王志伟:完成倒计时功能,并对页面进行 ...