django Rest Framework----序列化
2018-06-19 13:45
666 查看
一、手动序列化
class BookView(APIView): ''' 构建数据结构 [{"title": "go"}, {"title": "java"}, {"title": "python"}, {"title": "c++"}] ''' def get(self,request): book_list = models.Book.objects.all() tmp=[] for book_obj in book_list: tmp.append({ 'title':book_obj.title }) return HttpResponse(json.dumps(tmp)) def post(self,request): return HttpResponse('post....')
model_to_dict():将对象转化成字典的形式:
[{"id": 1, "title": "go"}, {"id": 2, "title": "java"}, {"id": 3, "title": "python"}, {"id": 4, "title": "c++"}]
from django.forms.models import model_to_dict class BookView(APIView): def get(self,request): book_list = models.Book.objects.all() tmp=[] for book_obj in book_list: tmp.append(model_to_dict(book_obj)) return HttpResponse(json.dumps(tmp))
mode_to_dict()还支持一些参数:
def model_to_dict(instance, fields=None, exclude=None): pass instance:queryset中每一个实例对象 fields:表示一个可选列表,如果提供则返回的dict中将只包含指定的字段 exclude:如果提供,则将字段排除在返回的dict中,即使fields包含它
二、使用django中的serialize
serialize的优点:它可以对queryset进行序列化。序列化后的结果: [{"model": "bookmanage.book", "pk": 1, "fields": {"title": "go"}}, {"model": "bookmanage.book", "pk": 2, "fields": {"title": "java"}}, {"model": "bookmanage.book", "pk": 3, "fields": {"title": "python"}}, {"model": "bookmanage.book", "pk": 4, "fields": {"title": "c++"}}]
from django.shortcuts import render,HttpResponse from rest_framework.views import APIView from bookmanage import models from django.core.serializers import serialize class BookView(APIView): def get(self,request): result = serialize('json',models.Book.objects.all()) return HttpResponse(result)
serialize:提供了将django模型翻译成其他格式的机制,该
serialize函数的参数是序列化数据的格式(请参阅序列化格式)和
QuerySet序列化。
三、使用REST框架序列化
使用REST框架序列化优点:可以把queryset序列化,也支持反序列化成queryset创建Serializer类
首先我们需要提供一种序列化和反序列化相关文章推荐
- django rest framework 入门1-序列化 Serialization
- django rest framework 入门1-序列化 Serialization
- Django REST framework 序列化与反序列化
- Django Rest Framework源码剖析(六)-----序列化(serializers)
- django rest framework 入门1-序列化 Serialization
- Django REST FrameWork中文教程1:序列化
- Django rest framework(6)----序列化
- django Rest Framework 系列 1 - 序列化 Serialization
- Django REST framework教程一:序列化
- django的序列化问题
- 使用Django REST Framework来快速实现API调用服务——上篇(运行环境和模型层)
- django rest framework 入门3——Class Based Views
- Django Rest Framework源码剖析(二)-----权限
- python Django rest framework
- Django rest framework权限
- DjangoRestFramework的外键反向关系序列化的一个问题
- Django 之REST framework学习1:Serialization(序列化)
- 阿里云Ubuntu 16.04部署Python Django REST framework
- 通过ajax GET方式查询数据,Django序列化objects
- Django REST Framework实现Web API