校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > Django drf請求模塊源碼解析

Django drf請求模塊源碼解析

熱門標簽:地圖標注自己和別人標注區別 商家地圖標注海報 聊城語音外呼系統 騰訊地圖標注沒法顯示 ai電銷機器人的優勢 南陽打電話機器人 海外網吧地圖標注注冊 孝感營銷電話機器人效果怎么樣 打電話機器人營銷

DRF 框架,全稱為 Django Rest Framework,是 Django 內置模塊的擴展,用于創建標準化 RESTful API;它利用 ORM 映射數據庫,并自定義序列化數據進行返回,多用于前后端分離項目

項目地址:

https://github.com/encode/django-rest-framework

請求模塊:request對象

源碼入口

APIView類中dispatch方法中的:request=self.iniialize_request(*args, **kwargs),源碼如下:

def initialize_request(self, request, *args, **kwargs):
    """
    Returns the initial request object.
    """
    parser_context = self.get_parser_context(request)

    return Request(
        request,
        parsers=self.get_parsers(),
        authenticators=self.get_authenticators(),
        negotiator=self.get_content_negotiator(),
        parser_context=parser_context
    )

源碼分析

源碼很簡單,第1句parser_context = self.get_parser_context(request),我們進入方法get_parser_context查看源碼:

"""
Returns a dict that is passed through to Parser.parse(),
as the `parser_context` keyword argument.
"""
# Note: Additionally `request` and `encoding` will also be added
#       to the context by the Request object.
return {
    'view': self,
    'args': getattr(self, 'args', ()),
    'kwargs': getattr(self, 'kwargs', {})
}

上面的代碼的意思是:返回一個解析的字典以便于Parser.parse()去解析,另外還通過Request對象添加了上下文requestencoding

第二句返回了一個Request對象,點擊進入查看

我們可以分析出,內部對request做了二次封裝,_request是一個HttpRequest對象,并且Request類中還有__getattr__此方法,代碼如下:

def __getattr__(self, attr):
    """
    If an attribute does not exist on this instance, then we also attempt
    to proxy it to the underlying HttpRequest object.
    """
    try:
        return getattr(self._request, attr)
    except AttributeError:
        return self.__getattribute__(attr)

意思是如果這個實例上不存在一個屬性,那么我們也會嘗試將其代理到底層HttpRequest對象。接下來我們可以通過案例演示

案例演示

我們創建了TestView視圖,視圖函數中打印了3個request屬性,并且在response上打了一個斷點,接下來通過url訪問視圖,進入斷點如下,

我們可以清楚的看到:

  • request是drfRequest對象
  • request下有data屬性,query_params屬性,但是沒有GET屬性

上面還有一個Protected Attributes屬性,里面包含了_request屬性

我們可以看到_requestWSGIHttpRequest對象,所以它會有GET屬性,所以我們視圖中打印的request.GET實際上和request._request.GET是一樣的,因為request沒有GET屬性,所以它就會訪問_request中的GET屬性,最后我們查看打印結果,如下:

QueryDict: {'a': ['1']}>
QueryDict: {'a': ['1']}>
QueryDict: {'a': ['1']}>

同樣的,POST請求也是如此,我們在視圖中添加POST的請求方式,如下:

def post(self, request, *args, **kwargs):
    print(request.POST)  # 兼容
    print(request._request.POST)  # 二次封裝
    print(request.data)  # 拓展,兼容性最強,3種請求方式都可以
    return Response("drf post ok")

我們都知道提交數據一般有3種方式

  • multipart/form-data
  • application/x-www-form-urlencoded
  • application/json

首先我們使用multipart/form-data提交請求數據,并請求API

我們查看pycharm打印結果

QueryDict: {'a': ['1']}>
QueryDict: {'a': ['1']}>
QueryDict: {'a': ['1']}>

可以看到multipart/form-data這種請求方式,都能打印出來

接著我們使用application/x-www-form-urlencoded提交請求數據,并請求API

QueryDict: {'a': ['1']}>
QueryDict: {'a': ['1']}>
QueryDict: {'a': ['1']}>

可以看到application/x-www-form-urlencoded這種請求方式,都能打印出來

最后我們使用application/json提交請求數據,并請求API

可以看到application/json這種請求方式,只有request.data能打印出來

QueryDict: {}>
QueryDict: {}>
{'a': 1}

所以request.data兼容性最強

總結drfrequest進行了二次封裝,request._request就是原生的WSGIRequest原生request的屬性和方法都可以被drfrequest對象直接訪問(兼容)drf請求的所有url拼接參數均被解析到query_params中,所有的數據包均被解析到data中其中post請求,request.data的兼容性最強,能兼容前臺傳輸的json格式的數據

到此這篇關于Django(48)drf請求模塊源碼分析 的文章就介紹到這了,更多相關Django drf源碼內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Django DRF APIView源碼運行流程詳解
  • Django DRF認證組件流程實現原理詳解
  • Django DRF路由與擴展功能的實現
  • django drf框架自帶的路由及最簡化的視圖
  • django drf框架中的user驗證以及JWT拓展的介紹
  • Django框架之DRF 基于mixins來封裝的視圖詳解
  • DRF跨域后端解決之django-cors-headers的使用
  • django DRF圖片路徑問題的解決方法

標簽:聊城 撫州 牡丹江 楊凌 六盤水 揚州 南寧 迪慶

巨人網絡通訊聲明:本文標題《Django drf請求模塊源碼解析》,本文關鍵詞  Django,drf,請求,模塊,源碼,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Django drf請求模塊源碼解析》相關的同類信息!
  • 本頁收集關于Django drf請求模塊源碼解析的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    久久精品国产精品亚洲红杏| 亚洲女同ⅹxx女同tv| 福利视频网站一区二区三区| 国产视频亚洲色图| 风间由美性色一区二区三区| 久久久噜噜噜久噜久久综合| 精品一区二区久久| 亚洲欧美精品午睡沙发| 91精品国产高清一区二区三区| 天天色天天爱天天射综合| 久久久午夜精品理论片中文字幕| 91小视频在线观看| 国产精品成人一区二区艾草 | 国产欧美日韩在线看| 色88888久久久久久影院野外| 一本大道久久a久久综合| 高清不卡在线观看av| 欧美色图12p| 99国产精品久久久| 香港成人在线视频| 91麻豆精品91久久久久久清纯| 中文字幕中文字幕在线一区| 99精品视频一区| 国产精品区一区二区三区| 在线视频综合导航| 麻豆成人久久精品二区三区小说| 欧美吻胸吃奶大尺度电影| 偷拍自拍另类欧美| 久久综合久久99| 亚洲国产日日夜夜| av成人老司机| 中文av一区二区| 欧美精品视频www在线观看| 欧美日韩精品福利| 亚洲精品国产一区二区三区四区在线| 视频一区二区三区入口| 国模大尺度一区二区三区| 99re这里只有精品视频首页| 久久免费午夜影院| 亚洲欧美一区二区久久| 欧美一区二区在线不卡| 日本精品视频一区二区| 欧美吻胸吃奶大尺度电影| 欧美成人一区二区| 自拍视频在线观看一区二区| 亚洲国产综合色| 国产99精品国产| 日韩免费在线观看| 亚洲高清在线视频| 国产麻豆一精品一av一免费| 91啦中文在线观看| 精品国产乱码久久久久久牛牛 | 91精品欧美久久久久久动漫| 国产欧美综合色| 国产精品一区二区三区99| 亚洲欧洲性图库| 99精品国产热久久91蜜凸| 性做久久久久久免费观看| 欧美成人精品二区三区99精品| 国产乱子伦一区二区三区国色天香| 精品国产1区2区3区| 麻豆精品在线播放| 91精品国产综合久久久久久漫画| 亚洲综合色视频| 国产成人在线视频网址| 欧美一级搡bbbb搡bbbb| 国产三级精品三级在线专区| 国内成+人亚洲+欧美+综合在线| 日韩免费电影一区| 亚洲成人午夜电影| 欧美日韩日本视频| 老司机精品视频导航| 国产精品一区二区在线观看不卡| 国产精品综合一区二区| 久热成人在线视频| 天堂久久久久va久久久久| 不卡一区二区在线| 麻豆精品久久久| 奇米色777欧美一区二区| 日本一区二区电影| 精品久久久三级丝袜| 欧美亚洲综合色| 色噜噜狠狠色综合中国| 色综合久久综合网97色综合| 欧美日韩国产大片| 久久精品国产99| 91精品蜜臀在线一区尤物| 国产亚洲制服色| 欧美国产日本韩| 中文字幕一区二区三| 亚洲mv大片欧洲mv大片精品| 一个色在线综合| 成人欧美一区二区三区小说| 极品少妇一区二区三区精品视频| 欧美综合一区二区| 91蜜桃免费观看视频| 99精品国产91久久久久久| 欧美日韩mp4| 久久这里都是精品| 欧美在线你懂得| 久久精品一区二区三区不卡牛牛| 久久美女高清视频| 国产精品视频线看| 亚洲欧洲99久久| 成人免费高清在线| 欧美一区二区免费视频| 久久久久久久国产精品影院| 中文字幕在线观看一区| 18欧美亚洲精品| 日韩高清一区在线| 日韩欧美中文一区| 国产一区日韩二区欧美三区| 久久女同精品一区二区| 喷白浆一区二区| 色嗨嗨av一区二区三区| 国产婷婷一区二区| 国产精品成人午夜| 国产成人日日夜夜| 欧美岛国在线观看| 精品一区二区三区视频在线观看| 久久亚洲综合色| 国产.精品.日韩.另类.中文.在线.播放| 日韩一卡二卡三卡| 久久国产尿小便嘘嘘尿| 日本精品视频一区二区| 日韩视频一区在线观看| 欧美v日韩v国产v| 日韩国产欧美一区二区三区| 欧美一卡二卡三卡| 视频在线观看91| 欧美精品黑人性xxxx| 亚洲资源在线观看| 久久这里只精品最新地址| 成人av资源站| 亚洲色图欧美偷拍| 成人午夜av电影| 国产日韩精品一区| 日韩免费电影一区| 日韩亚洲欧美在线| 日韩一级二级三级精品视频| 风间由美性色一区二区三区| 亚洲精品国产第一综合99久久| 在线免费观看日韩欧美| 中文字幕一区不卡| 色偷偷一区二区三区| 亚洲电影一区二区| 久久色成人在线| 91免费在线看| 亚洲一区成人在线| 日韩精品一区二区三区swag| 在线中文字幕一区二区| 九九视频精品免费| 亚洲午夜在线电影| 亚洲久本草在线中文字幕| 天天综合天天综合色| 中文在线免费一区三区高中清不卡| 一本到高清视频免费精品| 一级日本不卡的影视| 亚洲国产精品高清| 久久久久成人黄色影片| 5566中文字幕一区二区电影| 91婷婷韩国欧美一区二区| 国产一区二区福利| 精品一区二区三区久久| 国产suv精品一区二区883| 成人av电影在线网| 91片在线免费观看| 91精品国产色综合久久ai换脸| 日韩一区二区三区电影| 国产精品久99| 国产.欧美.日韩| 欧美高清激情brazzers| 春色校园综合激情亚洲| 毛片不卡一区二区| 亚洲大型综合色站| 国产精品水嫩水嫩| 欧美r级在线观看| 99精品一区二区| 成人高清免费在线播放| 国产精品99久久久久久宅男| 蜜臀av性久久久久蜜臀aⅴ流畅| 一区二区三区小说| 成人免费一区二区三区在线观看| 日本一区二区三级电影在线观看| 精品国产免费久久| 日本一区二区三区在线不卡| 国产精品无人区| 一区二区三区四区激情| 亚洲伊人色欲综合网| 中文字幕精品一区| 中文字幕亚洲不卡| 国产成人av影院| 欧美最新大片在线看| 日本va欧美va瓶| 久久综合中文字幕| 欧美日韩一区久久| 日韩一级成人av| 成人h动漫精品一区二区| 国产午夜精品福利| 国产成人一级电影|