每日作业 7/7 drf

新建一个图书表,5个符合restful规范的接口,用CBV的APIView实现

将orm模型类转化为字典,简单粗暴的方法,使用model_to_dict

from django.forms.models import model_to_dict

usrls.py

from django.contrib import admin
from django.urls import path
from app01 import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('api/books/', views.Books.as_view(),name="books"),
    path('api/books/<int:book_id>/', views.Books.as_view()),
]

views.py

from django.shortcuts import render
from rest_framework.views import APIView
from app01 import models
from django.http import JsonResponse
from django.forms.models import model_to_dict


# Create your views here.
class Books(APIView):
    @property
    def book_id_error(self):
        return [{'status': 404, 'msg': 'book_id不存在'}]

    @staticmethod
    def data_process(queryset_obj):
        re_list = []
        for item in queryset_obj:
            re_dict=model_to_dict(item)
            # print(re_dict)
            re_list.append(re_dict)
        return re_list

    def get(self,request,book_id=None):
        if not book_id:
            book_queryset = models.Book.objects.all()
        else:
            book_queryset = models.Book.objects.filter(pk=book_id)
        re_list = self.data_process(book_queryset) if book_queryset else self.book_id_error
        return JsonResponse(re_list, safe=False)

 

posted @ 2020-07-07 00:26  耗油炒白菜  阅读(148)  评论(0)    收藏  举报