DRF之請求與響應
阿新 • • 發佈:2022-04-01
請求
請求指的就是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 importJSONParser 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渲染器 ) }