【Django Rest framework】View篇翻译及应用举例

内容介绍

小伙伴们熟知以下的两种模式

  1. MVC模式[Model-View-Controller(模型-视图-控制器) ]
  2. MVT模式[Model-View-Template(模型-视图-模版)]

两者中提到 View 视图是提供接口服务和逻辑的代码。
例如在 Django 项目中经常会定义各种

class UserViewSet(...):

def user(request, *args, **kwargs):

都是后端服务定义的视图类或者函数,在URL对象中注册便实现一个逻辑 API接口。

APIView

Django框架中定义一个试图类的时候仅仅需要继承就可以使用各种请求方法,在class中加入对应的方法即可:

from rest_framework import views, response, status

class Medusa(views.APIView):
    def get(self, request, *args, **kwargs):
        return response.Response({
    
    'detail': 'get'}, status=status.HTTP_200_OK)

    def post(self, request, *args, **kwargs):
        return response.Response({
    
    'detail': 'post'}, status=status.HTTP_201_CREATED)

    def delete(self, request, *args, **kwargs):
        return response.Response({
    
    'detail': 'delete'}, status=status.HTTP_204_NO_CONTENT)

    def put(self, request, *args, **kwargs):
        return response.Response({
    
    'detail': 'put'}, status=status.HTTP_200_OK)

只要视图中定义后返回一个Response 对象即可。
使用rest-framework需要使用到APIView的继承父类。

api_view 装饰器

根据个人习惯,是否使用装饰器修饰函数方法。

from rest_framework.decorators import api_view
@api_view(['GET'])
def medusa_view(request):
    ...
@api_view(['POST'])
def medusa_view(request):
    ...
@api_view(['PUT'])
def medusa_view(request):
    ...
@api_view(['DELETE'])
def medusa_view(request):
    ...

猜你喜欢

转载自blog.csdn.net/qq_20288327/article/details/112992196
今日推荐