1. 程式人生 > 其它 >DRF之請求與響應

DRF之請求與響應

請求

  請求指的就是Request類的物件也就是新的request物件

from rest_framework.request import Request

  需掌握

1、__getattr__
2、request.data
3、request.query_parmas--->self._request.GET-->restful規範裡,請求地址中帶過濾(查詢)條件---》get請求地址中提交的資料在GET中,---》query_parmas:查詢引數

請求的解析格式

  區域性配置

  views.py

from rest_framework.parsers import
JSONParser class PublishView(APIView): parser_classes = [JSONParser] def post(self, request): print(request.data) return Response('post請求')

 

   全域性配置

    在settings.py中配置

REST_FRAMEWORK = {
    'DEFAULT_PARSER_CLASSES': [
        'rest_framework.parsers.JSONParser',
    ],
}

  使用順序

    我們沒有配置,也有預設配置,3個都能解析

    drf有預設配置(最後)----》專案配置檔案的配置(其次)----》檢視類中配的(優先用)

    drf的預設配置:

from rest_framework import settings

   總結:一般情況下,都使用預設即可,不用配置

響應

Respone:from rest_framework.response import Response

   需掌握

    data=None    字串,字典,列表

      給http響應body體中內容

       response物件中取出處理

     status=None   響應狀態碼:1xx,2xx,3xx,預設是200

from rest_framework.status import HTTP_201_CREATED
Response(ser.data,status=HTTP_201_CREATED)

    headers=None,      # 響應頭 字典

   瞭解

    template_name=None,  # 模板名字(不用),用瀏覽器訪問時,可以改

    exception=False,    # 異常處理

    content_type=None   # 響應編碼格式

響應格式

  和請求體的解析格式一樣

  區域性配置

from rest_framework.renderers import JSONRenderer,BrowsableAPIRenderer
class BookDetailView(APIView):
    renderer_classes = [JSONRenderer,]

  全域性配置

REST_FRAMEWORK = {
    'DEFAULT_RENDERER_CLASSES': (  # 預設響應渲染類
        'rest_framework.renderers.JSONRenderer',  # json渲染器
        'rest_framework.renderers.BrowsableAPIRenderer',  # 瀏覽API渲染器
    )
}