1. 程式人生 > >Rest Framework第五天-版本控制、響應器和渲染器、分頁

Rest Framework第五天-版本控制、響應器和渲染器、分頁

頻率:     自定義:         1 定義一個類MyThrottles             allow_request(頻率限制的邏輯)             wait(返回一個數字,給使用者提示,還差多少秒)         2 區域性使用:throttle_classes=[MyThrottles,]         3 全域性使用:'DEFAULT_THROTTLE_CLASSES':['utils.common.MyThrottles',],     用內建的:(可以控制ip,和userid)         1 寫一個類,繼承SimpleRateThrottle             屬性:scope = 'xxx'             重寫方法:get_cache_key             去setting裡配置:'DEFAULT_THROTTLE_RATES':{                                 # 'xxx':'5/m',                                 'xxx':'5/m',                             }                 2 區域性使用:throttle_classes=[MyThrottles,]         3 全域性使用:'DEFAULT_THROTTLE_CLASSES':['utils.common.MyThrottles',], 補充:     認證,想區域性取消(禁用)     authentication_classes=[] 版本控制:     1 127.0.0.1/course/?version=v100000       用from rest_framework.versioning import QueryParameterVersioning       在檢視類裡:         versioning_class=QueryParameterVersioning(**不再是列表)       在setting裡配置:         REST_FRAMEWORK={             'VERSION_PARAM':'version',             'DEFAULT_VERSION':'v2',             'ALLOWED_VERSIONS':['v1','v2']         }       取:             檢視類裡:             request.version          127.0.0.1/v1/course/           用from rest_framework.versioning import URLPathVersioning           在檢視類裡:             versioning_class=URLPathVersioning(**不再是列表)           在setting裡配置:             REST_FRAMEWORK={                 'VERSION_PARAM':'version',                 'DEFAULT_VERSION':'v2',                 'ALLOWED_VERSIONS':['v1','v2']             }           取:             檢視類裡:             request.version

    3 反向解析(瞭解) 響應器:     以後專案中用:(返回的格式,只是json格式)         REST_FRAMEWORK={             'DEFAULT_RENDERER_CLASSES':['rest_framework.renderers.JSONRenderer',],         }     補充一點:         查詢模板的時候:先從自己app裡找,找不取專案,再找不到,取各個app裡找   分頁:     1 簡單分頁         127.0.0.1/course/page=3         PageNumberPagination             #每頁顯示多少條api_settings.PAGE_SIZE             #page_size =             #查詢指定頁碼的引數             #page_query_param = 'page'             #指定每頁顯示條數             #page_size_query_param = None             #限制每頁顯示最大條數             #max_page_size = None              2 偏移分頁         127.0.0.1/course/offset=10&limit=5         LimitOffsetPagination             #         default_limit:預設顯示多少條             #         max_limit:最大顯示多少條             #         limit_query_param:重新命名limit(limit=4:表明顯示四條,受max_limit的限制)             #         offset_query_param:指定查詢的標杆名(offset=1:表明從第二條開始,往後偏移)     3 加密分頁         後臺返回的url:127.0.0.1/course/page=dfgeg             CursorPagination                 cursor_query_param = 'cursor':查詢的名字                 page_size = api_settings.PAGE_SIZE:每頁顯示的條數                 ordering = '-created'  :按誰排序                      補充:(1)修改資料屬性的方式:             1 再setting裡配置每頁條數             2 寫一個類,繼承它,屬性重寫             3 再物件裡修改         (2)my_page.get_paginated_response(ser.data)              # 對Response做了封裝,返回內容裡有總條數,上一頁,下一頁的連結       自己封裝response物件     。。。。