Django之rest_framework(五)

59 篇文章 ¥19.90 ¥99.00
本文介绍了Django的rest_framework库中扩展的视图子类,如CreateAPIView、ListAPIView等,并详细讲解了视图集ViewSet的分类及使用,包括ModelViewSet和ReadOnlyModelViewSet。同时,讨论了ViewSet与APIView的区别及其在路由匹配规则上的特点。

一、扩展的视图子类介绍

image-20221128235841186

rest_framework.generics

  • CreateAPIView 提供 post 方法

    继承自: GenericAPIView、CreateModelMixin

  • ListAPIView 提供 get 方法

    继承自:GenericAPIView、ListModelMixin

  • RetrieveAPIView 提供 get 方法

    继承自: GenericAPIView、RetrieveModelMixin

  • DestoryAPIView 提供 delete 方法

    继承自:GenericAPIView、DestoryModelMixin

  • UpdateAPIView 提供 put 和 patch 方法

    继承自:GenericAPIView、UpdateModelMixin

  • ListCreateAPIView 提供 ge

### 实现JWT认证 为了实现JSON Web Token (JWT) 认证,在`settings.py`文件中需向Django REST框架的默认认证类列表添加`JSONWebTokenAuthentication`[^1]。 配置如下所示: ```python REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES': ( 'rest_framework_jwt.authentication.JSONWebTokenAuthentication', 'rest_framework.authentication.SessionAuthentication', 'rest_framework.authentication.BasicAuthentication', ), } ``` 安装必要的包对于集成JWT至关重要。通过pip可以轻松完成DRF及其JWT支持库的安装[^4]。 ```bash python -m pip install djangorestframework python -m pip install djangorestframework-jwt ``` 当请求到达时,`request.user`属性会返回由当前请求的身份验证类所确认的相关用户对象[^3]。此过程涉及调用内部方法来处理实际的身份验证逻辑并设置用户实例。 创建视图函数或类时,可以通过装饰器或者基于类的方法限制访问权限,仅允许经过适当授权的用户继续操作。例如: ```python from rest_framework.permissions import IsAuthenticated from rest_framework.response import Response from rest_framework.views import APIView class ExampleView(APIView): permission_classes = [IsAuthenticated] def get(self, request, format=None): content = {'message': 'Hello, you are authenticated!'} return Response(content) ``` 上述代码片段展示了如何定义一个简单的API端点,并确保只有已登录且有效令牌存在的客户端才能成功发起GET请求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜鸟之编程

您的支持将成为我的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值