【DRF】 Request 和 Response(更新中~)

DRF 的 Request 和 Response

DRF 對 Django 原生的 Request 和 Response作了一層封裝,給咱們的使用帶來了更大的便利前端

Request

request.data

返回請求正文的已解析內容,GET和POST都同樣bash

  • 它包括全部已解析的內容,包括文件和非文件輸入。
  • 它支持解析除HTTP方法以外的其餘內容POST,這意味着您能夠訪問內容PUT和PATCH請求。
  • 它支持REST框架的靈活請求解析,而不單單支持表單數據。例如,您能夠像處理傳入表單數據同樣處理傳入的JSON數據

request.query_params

裏面放有請求頭傳遞過來的參數
不止是GET的請求頭,POST PUT DELETE的請求頭都會在這裏面
建議使用request.query_params而不是Django的標準request.GET框架

request.parsers

內容解析的 parser
一般不須要訪問此屬性ui

request.user

獲取當前的用戶spa

requset.auth

一般不須要訪問此屬性code

Responses

支持各類類型的返回get

  • data: 返回的數據
  • status: 狀態碼,默認是200
  • template_name: 返回 template
  • headers: http headers
  • content_type: http content_type

應用

結合 DRF 的 filter 過濾數據string

class GoodsListView(mixins.ListModelMixin, viewsets.GenericViewSet):

    # queryset = Goods.objects.all() 寫了 get_queryset(self): 就能夠不用寫這個配置
    serializer_class = GoodsSerializer
    pagination_class = GoodsPagination  # 調用自定義的分頁

    def get_queryset(self):
        queryset = Goods.objects.all()  # 默認返回所有數據
        price_min = self.requset.query_params.get("price_min", 0)  # 獲取前端請求頭中的參數,後一個參數是默認值
        if price_min:
            queryset = queryset.filter(shop_price__gt=int(price_min))
        return queryset

複製代碼
相關文章
相關標籤/搜索