django 3种返回json方法

1.手动组装字典返回

from django.http import JsonResponse, HttpResponse
from django.shortcuts import render
from app01.models import Book # Create your views here. def get_book(request):
all_book = Book.objects.all()
d = []
for i in all_book:
d.append({'name': i.name})
return JsonResponse(d, safe=False)

2.JsonResponse返回

def get_book2(request):
from django.forms.models import model_to_dict
all_book = Book.objects.all()
d = []
for i in all_book:
d.append(model_to_dict(i)) # <-------针对一个对象()
return JsonResponse(d, safe=False) # 非字典要设置成false

一般自己的系统会从别的系统获取数据, 这里应该也仅限于展示, 所以JsonResponse还是有很多实用场景

def booapi(request):
from django.core.serializers import serialize
book_list = [
{'id': 1, 'name': 'ptyhon'},
{'id': 2, 'name': 'go'},
]
import json
return HttpResponse(json.dumps(book_list), content_type='application/json')

3.django自带的serializers返回

这个好像只能针对queryset操作,即本地db里的数据,不能操作从其他系统api获取到的list ,dict等

def get_book3(request):
from django.core.serializers import serialize
d = serialize('json', Book.objects.all()) # <-------针对一个queryset,[{}, {}] # return HttpResponse(d)
return HttpResponse(d)
return render(request, 'myapp/index.html', {'foo': 'bar',}, content_type='application/xhtml+xml')

return HttpResponse(t.render(c, request), content_type='application/xhtml+xml')

return HttpResponse(json.dumps(data), content_type='application/json', status=400)

JsonResponse = HttpResponse+content-type

model转dict方法

https://mp.weixin.qq.com/s/7gPLaCESHAB0dLgq7qZq5Q



使用类的__dict__方法

https://stackoverflow.com/questions/21925671/convert-django-model-object-to-dict-with-all-of-the-fields-intact

http://www.liujiangblog.com/course/django/171

[django]django 3种返回json方法的更多相关文章

  1. 转: .NET MVC3 几种返回 JSON 对象的方式和注意事项

    .NET MVC3 几种返回 JSON 对象的方式和注意事项 转自:http://blog.csdn.net/xxj_jing/article/details/7382589 引言在用 .NET MV ...

  2. .NET中常用的几种解析JSON方法

    一.基本概念 json是什么? JSON:JavaScript 对象表示法(JavaScript Object Notation). JSON 是一种轻量级的数据交换格式,是存储和交换文本信息的语法. ...

  3. ajax 返回Json方法

    public static void sendJsonData(String data) { ActionContext ac = ActionContext.getContext(); HttpSe ...

  4. Django 分页查询并返回jsons数据,中文乱码解决方法

    Django 分页查询并返回jsons数据,中文乱码解决方法 一.引子 Django 分页查询并返回 json ,需要将返回的 queryset 序列化, demo 如下: # coding=UTF- ...

  5. SpringMVC 返回JSON数据的配置

    spring-mvc-config.xml(文件名称请视具体情况而定)配置文件: <!-- 启动Springmvc注解驱动 --> <mvc:annotation-driven> ...

  6. spring mvc 返回json的配置

    转载自:http://my.oschina.net/haopeng/blog/324934 springMVC-servlet.xml 配置 1 2 3 4 5 6 7 8 9 10 11 12 13 ...

  7. Django中的 返回json对象的方式

    在返回json对象的几种方式: 1 from django.shortcuts import render, HttpResponse # Create your views here. from d ...

  8. django 模板语法和三种返回方式

    模板 for循环 {% for athlete in athlete_list %} <li>{{ athlete.name }}</li> {% endfor %} if语句 ...

  9. django 返回json

    django返回json有以下三个版本 from django.http import HttpResponse import json from django.views import View f ...

随机推荐

  1. Ubuntu 基于Docker的TensorFlow 环境搭建

    基于Docker的TensorFlow 环境搭建 基于(ubuntu 16.04LTS/ubuntu 14.04LTS) 一.docker环境安装 1)更新.安装依赖包 sudo apt-get up ...

  2. STL之vector,deque学习实例

    ``` #include<iostream> #include<algorithm> #include<ctime> #include<vector> ...

  3. Docker学习之——Node.js+MongoDB+Nginx环境搭建(一)

    最近在学习Node.js相关知识,在环境搭建上耗费了不少功夫,故此把这个过程写下来同大家分享一下,今天我先来介绍一下Docker,有很多人都写过相关知识,还有一些教程,在此我只想写一下,我的学习过程中 ...

  4. JavaScript----特效代码

    1.不同时间段显示不同问候语 <Script Language="JavaScript"> <!-- var text=""; day = n ...

  5. Ubuntu设置DNS永久生效

    环境查看 设置临时生效,修改配置文件/etc/resolv.conf nameserver 202.96.134.133 重启失效 设置永久生效,修改网卡配置文件/etc/network/interf ...

  6. Echarts Map 值域为小数的原因

    最近做一个项目用到了Echarts Map不知道怎么回事,有时多了一位小时,可这个意义不用小数表示(1.0个人似乎觉得有点奇怪嘞 {boolean}calculable false 是否启用值域漫游, ...

  7. cmd识别不了mysql命令

    问题现象:安装配置过MySQL和环境变量,当时用的好好的,过了几天再试发现cmd识别不了了: 之前maven的mvn命令也遇到过这个问题. 原因:win10中配成这个样子,重启之后会时效: 解决方法: ...

  8. vue进阶用法-深入响应式原理

    异步更新队列 当vue异步执行更新DOM时,只要观察到数据变化,vue经开启一个队列,并缓冲在同一时间循环中发生的所有数据改变.如果同一个watch被多次触发,只会一次推入到队列中.然后在下一个事件循 ...

  9. 淘宝NPM镜像cnpm

    # 安装cnpm命令 npm install -g cnpm --registry=https://registry.npm.taobao.org2.cnpm install

  10. C和C指针小记(五)-指针类型

    1.指针常量(pointer constant) 一般是没有这个概念的,指针类型的常量理解起来可以看着指针类型的常量,常用 0xff123456 表示,我们一般不会这么做.因为程序员一般无法事先知道计 ...