Django用rest_framework接受json数据和自定义接受数据类型

  1. 安装

     pip install djangorestframework
    
  2. 导入APIView

     from rest_framework.views import APIView
    
  3. 接受json数据

     request.data
    

    在这里插入图片描述

    在这里插入图片描述 在这里插入图片描述

  4. 你还可以自定义接受格式

    1. 导入你需要格式类型

       from rest_framework.parsers import FormParser, JSONParser, MultiPartParser
      
    2. 在你的类里定义parser_classes
      在这里插入图片描述
      那么前端发送过来的数据只能是你parser_classes中定义的类型, 我这里写了3种类型FormParser, JSONParser, MultiPartParser格式

    3. MultiPartParser

      1. 前端form表单提交格式为multipart/form-data
        在这里插入图片描述
        在这里插入图片描述
        在这里插入图片描述
    4. FormParser

      1. 前端form表单提交格式为application/x-www-form-urlencoded
        在这里插入图片描述
        在这里插入图片描述
        在这里插入图片描述
    5. JSONParser

      1. 前端只能发送json数据
        在这里插入图片描述
        在这里插入图片描述
        在这里插入图片描述
    6. 如果你后端只定义了能接受son格式的数据, 你前端发送别的格式的数据会报一个TemplateDoesNotExist的错误

      1. 前端
        在这里插入图片描述
      2. 后端
        在这里插入图片描述
        在这里插入图片描述
    7. 如果你后端定义了不能接受son格式的数据, 你前端发送json格式的数据会报一个415的错误

      1. 前端
        在这里插入图片描述
      2. 后端
        在这里插入图片描述
        在这里插入图片描述
### 实现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、付费专栏及课程。

余额充值