DRF序列化

时间:2021-06-30 14:30:09

1. 安装

pip install djangoframework

2. app注册 rest_framework

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app.apps.AppConfig',
'rest_framework'
]

3. 自定义序列化程序,创建一个serializers序列器

serializer.CharField(source='orm操作')

from rest_framework import serializers

class PublisherS(serializers.Serializer):
id = serializers.IntegerField()
title = serializers.CharField(max_length=32) class AuthorS(serializers.Serializer):
id = serializers.IntegerField()
name = serializers.CharField(max_length=32) class BookS(serializers.Serializer):
id = serializers.IntegerField()
title = serializers.CharField(max_length=32)
pub_time = serializers.DateField()
category = serializers.IntegerField(source='get_category_display') publisher = PublisherS()
authors = AuthorS(many=True)

4. views 中导入

from rest_framework.views import APIView
from rest_framework.response import Response
from app.models import Book
from .serializer import BookS class BookView(APIView):
def get(self,request):
book_queryset = Book.objects.all()
#用序列器序列化出一个对象
ser_obj = BookS(book_queryset,many=True)
return Response(ser_obj.data) def post(self,request):
...