首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我应该使用哪种Django Rest框架

我应该使用哪种Django Rest框架
EN

Stack Overflow用户
提问于 2017-06-02 14:11:30
回答 1查看 30关注 0票数 0

(我正在使用最新的django/python/DRF)

我的API端点是内部应用程序。他们不匹配1比1与我在系统中的模型。我看到了两种将视图用于API的技术。

第一种方法使用方法,就像我使用的那样:

代码语言:javascript
运行
复制
@api_view(['GET', 'POST'])
@authentication_classes([JSONWebTokenAuthentication])
def myApiEndPoint(request):
    """
    This text is the description for this API.
    """

    if request.method == 'GET':
        return Response("ok get", status=status.HTTP_200_OK)
    elif request.method == 'POST':
        return Response("ok post", status=status.HTTP_200_OK)

第二种使用类定义,如DRF文档。

代码语言:javascript
运行
复制
class UserViewSet(viewsets.ModelViewSet):
    """
    API endpoint that allows users to be viewed or edited.
    """
    queryset = User.objects.all().order_by('-date_joined')
    serializer_class = UserSerializer


class GroupViewSet(viewsets.ModelViewSet):
    """
    API endpoint that allows groups to be viewed or edited.
    """
    queryset = Group.objects.all()
    serializer_class = GroupSerializer

第二条路似乎更整洁、更有序。但是:

  1. 我可以将它用于非特定模型的验证吗?
  2. 如何在此实例中定义每个类的权限和身份验证类?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-02 16:15:17

  1. 是的
    • 基于Serializer (而不是ModelSerializer)创建序列化程序,并将您的自定义验证放在那里
    • 不要使用ModelViewSet作为基类,而是使用viewsets.GenericViewSet for GET,创建名为list的方法,为POST创建名为create的方法,以获取更多信息,检查视图集文档

  1. 很简单:

只需在视图集中定义这些var:(还可以检查身份验证权限的文档

代码语言:javascript
运行
复制
class UserViewSet(GenericViewSet):
    permission_classes = [AllowAny, ] # or any other permission class
    authentication_classes = [JSONWebTokenAuthentication, ] # or any other authentication class
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44331013

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档