• 1.3 syl/settings.py配置DRF: 全局配置


    # 过滤器 # 1,安装 django-filter

    # 2,注册应用

    # 3,配置settings, 在view里配置可过滤的字段

    # 4,使用 查询字符串携带过滤信息

    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.认证器(全局):用户登录校验用户名密码或者token是否合法

      'DEFAULT_AUTHENTICATION_CLASSES': [

        # 'rest_framework_jwt.authentication.JSONWebTokenAuthentication', # 在 DRF中配置JWT认证

        # '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': {

        'user': '100/hour',               # 认证用户每小时100次

        'anon': '3/day',                   # 未认证用户每天能访问3次

      },

      'DEFAULT_CONTENT_NEGOTIATION_CLASS': 'rest_framework.negotiation.DefaultContentNegotiation',

       'DEFAULT_METADATA_CLASS': 'rest_framework.metadata.SimpleMetadata',

       'DEFAULT_VERSIONING_CLASS': None,

      #4.分页(全局):全局分页器, 例如 省市区的数据自定义分页器, 不需要分页

      'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination',          # 每页返回数量

      'PAGE_SIZE': 10,             # 默认 None

      

      #5.过滤器后端

      'DEFAULT_FILTER_BACKENDS': [

        'django_filters.rest_framework.DjangoFilterBackend',

        # 'django_filters.rest_framework.backends.DjangoFilterBackend', 包路径有变 化

      ],

      #5.1过滤排序(全局):Filtering 过滤排序

      'SEARCH_PARAM': 'search',

      'ORDERING_PARAM': 'ordering',

       'NUM_PROXIES': None,

      

      #6.版本控制:Versioning 接口版本控制

       'DEFAULT_VERSION': None,

       'ALLOWED_VERSIONS': None,

       'VERSION_PARAM': 'version',

      # Authentication 认证             # 未认证用户使用的用户类型

      'UNAUTHENTICATED_USER': 'django.contrib.auth.models.AnonymousUser',

      # 未认证用户使用的Token值

      'UNAUTHENTICATED_TOKEN': None,

      # View configuration

      'VIEW_NAME_FUNCTION': 'rest_framework.views.get_view_name',

      'VIEW_DESCRIPTION_FUNCTION': 'rest_framework.views.get_view_description',

      

      'NON_FIELD_ERRORS_KEY': 'non_field_errors',

      # Testing

      'TEST_REQUEST_RENDERER_CLASSES': [

        'rest_framework.renderers.MultiPartRenderer',

        'rest_framework.renderers.JSONRenderer'

      ],

      'TEST_REQUEST_DEFAULT_FORMAT': 'multipart',

      # Hyperlink settings

      'URL_FORMAT_OVERRIDE': 'format',

      'FORMAT_SUFFIX_KWARG': 'format',

       'URL_FIELD_NAME': 'url',

      # Encoding

      'UNICODE_JSON': True,

      'COMPACT_JSON': True,

       'STRICT_JSON': True,

      'COERCE_DECIMAL_TO_STRING': True,

       'UPLOADED_FILES_USE_URL': True,

      # Browseable API

      'HTML_SELECT_CUTOFF': 1000,

      'HTML_SELECT_CUTOFF_TEXT': "More than {count} items...",

      # Schemas

      'SCHEMA_COERCE_PATH_PK': True,

      'SCHEMA_COERCE_METHOD_NAMES': {

        'retrieve': 'read',

        'destroy': 'delete'

      },

    }

  • 相关阅读:
    021.day21 反射 Class类 反射常用操作
    020.day20 线程概述 多线程优缺点 线程的创建 线程常用方法 生命周期 多线程同步
    019.day19 缓冲流 对象流 标准输入输出流
    018.day18 map集合如何实现排序 File类 IO流 字节流 字符流 编码
    017.day17 Map接口 克隆 treeSet集合排重缺陷
    016.day16 HashSet TreeSet 比较器Comparable Comparator
    015.day15
    014.day14
    013.day13
    线程
  • 原文地址:https://www.cnblogs.com/aa1bb2/p/13887511.html
Copyright © 2020-2023  润新知