DRF序列化

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):
        ...

 

posted @ 2018-11-14 21:12  Niuli'blog  阅读(203)  评论(0编辑  收藏  举报