Django之rest_framework(三)

59 篇文章 ¥19.90 ¥99.00
本文介绍了Django rest_framework中的GenericAPIView,它为其他Mixin扩展类提供了序列化器和数据库查询方法的支持。内容包括GenericAPIView的属性如serializer_class和queryset,以及get_serializer_class、get_queryset等方法的说明,并简要提到了几个常见的视图类扩展,如ListModelMixin、RetrieveModelMixin等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、GenericAPIView的使用

image-20221129000844837

rest_framework.generics.GenericAPIView

继承自APIVIew,主要增加了操作序列化器和数据库查询的方法,作用是为下面Mixin扩展类的执行提供方法支持。通常在使用时,可搭配一个或多个Mixin扩展类

1.1、属性

  • serializer_class 指明视图使用的序列化器
  • queryset 指明使用的数据查询集

1.2、方法

  • get_serializer_class(self) 返回序列化器类
  • get_serializer(self, args, *kwargs) 返回序列化器对象
  • get_queryset(self) 返回视图使用的查询集
  • get_object(self) 返回视图所需的模型类数据对象</
### 实现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、付费专栏及课程。

余额充值