zoukankan      html  css  js  c++  java
  • 类视图(APIView)

    from rest_framework.views import APIView
    from meituan.models import Merchant
    from django.http import Http404
    from .serializers import MerchantSerializer
    from rest_framework.response import Response
    from rest_framework import status
    
    ###################### APIView的代码 ######################
    class MerchantView(APIView):
        """
        检索, 更新和删除一个merchant实例对象.
        """
        def get_object(self, pk):
            try:
                return Merchant.objects.get(pk=pk)
            except Merchant.DoesNotExist:
                raise Http404
    
        def get(self, request, pk=None):
            if pk:
                merchant= self.get_object(pk)
                serializer = MerchantSerializer(merchant)
                return Response(serializer.data)
            else:
                queryset = Merchant.objects.all()
                serializer = MerchantSerializer(instance=queryset,many=True)
                return Response(serializer.data)
    
        def put(self, request, pk):
            merchant = self.get_object(pk)
            serializer = MerchantSerializer(merchant, data=request.data)
            if serializer.is_valid():
                serializer.save()
                return Response(serializer.data)
            return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
    
        def delete(self, request, pk):
            merchant= self.get_object(pk)
            merchant.delete()
            return Response(status=status.HTTP_204_NO_CONTENT)
    
    from django.urls import path
    from .views import MerchantView
    
    app_name = 'classview'
    urlpatterns = [
        # 列表:/merchant/ get
        # 新增:/merchant/ post
        # 详情:/merchant/[pk]/ get
        # 修改:/merchant/[pk]/ put
        # 删除:/merchant/[pk]/ delete
        path('merchant/',MerchantView.as_view()),
        path('merchant/<int:pk>/',MerchantView.as_view()),
    ]
    
  • 相关阅读:
    JDK+Jmeter 环境搭建
    APP自动化中三大定位工具
    APP自动化环境配置
    pytest生成allure报告
    pytest怎么标记用例?
    pytest中怎么实现参数化?
    pytest中怎么引用前置中的变量
    pytest_前置后置
    toast文本提示信息元素获取
    js处理日历
  • 原文地址:https://www.cnblogs.com/xshan/p/14193392.html
Copyright © 2011-2022 走看看