modelviewset操作数据接口

本文介绍了如何在Django REST框架中配置settings.py,包括设置序列化器、认证、权限、限流、过滤、排序、分页等,并展示了UserSerializer的实现。此外,还展示了如何编写自定义权限类MyPermission和自定义分页类PageNum,以及UserViewSet视图集的使用,包括actions和过滤字段的设置。
摘要由CSDN通过智能技术生成

modelviewset是Django框架中的模块,用于配合使用序列化器对数据进行增删改查、过滤、排序、分页等基本操作

  1. 配置settings.py文件

    REST_FRAMEWORK = {
         
        # 文档报错: AttributeError: ‘AutoSchema’ object has no attribute ‘get_link’
        # 用下面的设置可以解决
        'DEFAULT_SCHEMA_CLASS':'rest_framework.schemas.AutoSchema',
        # 默认设置是:
        # 'DEFAULT_SCHEMA_CLASS':'rest_framework.schemas.openapi.AutoSchema',# 异常处理器
        # 'EXCEPTION_HANDLER': 'user.utils.exception_handler',# Base API policies
        'DEFAULT_RENDERER_CLASSES': [
            'rest_framework.renderers.JSONRenderer',
            'rest_framework.renderers.BrowsableAPIRenderer',
        ],
        'DEFAULT_PARSER_CLASSES':   [
            'rest_framework.parsers.JSONParser',
            'rest_framework.parsers.FormParser',
            'rest_framework.parsers.MultiPartParser'
        ],
        # 1.认证器(全局)
        'DEFAULT_AUTHENTICATION_CLASSES': [
            'rest_framework.authentication.SessionAuthentication',  # 使用session时的认证器
            'rest_framework.authentication.BasicAuthentication'     # 提交表单时的认证器
        ],
        #2.权限配置(全局): 顺序靠上的严格
        'DEFAULT_PERMISSION_CLASSES': [
            # 'rest_framework.permissions.IsAdminUser',  # 管理员可以访问
            # 'rest_framework.permissions.IsAuthenticated',  # 认证用户可以访问
            # 'rest_framework.permissions.IsAuthenticatedOrReadOnly',  # 认证用户可以访问, 否则只能读取
            # 'rest_framework.permissions.AllowAny',  # 所有用户都可以访问
        ],
        #3.限流(防爬虫)
        'DEFAULT_THROTTLE_CLASSES': [
            'rest_framework.throttling.AnonRateThrottle',
            'rest_framework.throttling.UserRateThrottle',
        ],
        #3.1限流策略
        'DEFAULT_THROTTLE_RATES': {
         
            
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值