欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁 > 知識庫 > 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請求模塊源碼解析的相關信息資訊供網民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    avtt天堂在线| 国产精品美女久久福利网站| 亚洲一区二区欧美| av一区二区三区在线| 成人在线观看高清| 欧美激情一区二区在线| 国产高清在线精品| 九九这里只有精品视频| 中文字幕av一区二区三区免费看 | 在线观看视频一区| 国产精品久久久久影院老司| 国产精品亚洲综合一区在线观看| 天天干天天操天天拍| 久久久天堂av| 国产精品伊人色| 亚洲少妇xxx| 中文字幕一区二区视频| 成人激情免费网站| 在线观看欧美黄色| 亚洲国产人成综合网站| 国产十八熟妇av成人一区| 91精品国产综合久久久久| 日本欧美在线看| 国产毛片毛片毛片毛片毛片毛片| 欧美一区二区福利视频| 久久精品国产99久久6| 欧美激情视频二区| 中文字幕一区二区三区在线播放 | 熟妇高潮一区二区| 欧美成人一区二区三区片免费 | 秋霞国产午夜精品免费视频| 亚洲精品视频久久久| 国产亚洲va综合人人澡精品 | 国产很黄免费观看久久| 一本久久综合亚洲鲁鲁五月天| 亚洲欧美怡红院| 少妇伦子伦精品无吗| 日韩视频免费直播| 国产剧情一区二区三区| 日本韩国欧美在线| 日韩中文字幕不卡| a级黄色免费视频| 国产精品久久久久婷婷二区次| 91麻豆国产香蕉久久精品| 欧美一区二区久久久| 国产麻豆精品在线| 欧美网站一区二区| 久久国产综合精品| 日本电影亚洲天堂一区| 日韩电影在线看| 成人在线观看高清| 午夜av电影一区| 很污很黄的网站| 亚洲午夜精品网| 国产黄色大片免费看| 亚洲免费视频成人| 精品无码一区二区三区| 国产精品国产三级国产普通话99 | 国产女主播视频一区二区| 91丨porny丨最新| 精品日韩99亚洲| 99久久国产综合精品麻豆| 日韩一区二区电影| 9久草视频在线视频精品| 欧美大片一区二区| av毛片久久久久**hd| 欧美成人一区二区三区在线观看| 成人国产视频在线观看| 日韩三级在线免费观看| 成人黄色小视频在线观看| 日韩欧美专区在线| 成人91在线观看| 精品国产91亚洲一区二区三区婷婷 | 久久99久久久欧美国产| 色天天综合色天天久久| 久久精品国产亚洲一区二区三区| 91福利区一区二区三区| 狠狠久久亚洲欧美| 欧美日韩精品福利| 国产一区二区不卡老阿姨| 欧美精品自拍偷拍动漫精品| 国产a视频精品免费观看| 欧美大尺度电影在线| 91免费观看视频| 欧美激情在线看| 成人影视免费观看| 夜夜精品视频一区二区| 欧美国产日韩在线观看成人| 久久精品国产77777蜜臀| 欧美人妖巨大在线| av激情成人网| 国产免费成人在线视频| 51调教丨国产调教视频| 夜夜嗨av一区二区三区四季av| 麻豆网址在线观看| 国内精品写真在线观看| 欧美一级日韩免费不卡| 91亚洲一线产区二线产区| 亚洲欧美一区二区三区国产精品| 国产aaaaaaaaa| 久久精品国产成人一区二区三区| 欧美日产国产精品| 18深夜在线观看免费视频| 中文字幕一区二区在线观看| 五月天婷婷丁香网| 精品伊人久久久久7777人| 日韩欧美视频一区| 人妻激情偷乱频一区二区三区| 亚洲精品国产视频| 色综合久久中文字幕综合网| 国产99久久久国产精品潘金 | 精品国内二区三区| 污污污www精品国产网站| 一个色综合av| 在线观看国产91| 91麻豆成人久久精品二区三区| 国产精品美女久久久久久久久久久| 日韩黄色中文字幕| 国产在线一区二区| 久久久蜜臀国产一区二区| 中文字幕在线观看免费高清| 久久精品久久综合| 久久综合999| 色噜噜噜噜噜噜| 国产一区二区三区不卡在线观看 | 91在线视频免费观看| 亚洲欧美视频在线观看视频| av激情在线观看| 成人激情午夜影院| 亚洲品质自拍视频| 欧美亚洲精品一区| 丰满少妇xbxb毛片日本| 午夜电影一区二区| 日韩三级免费观看| 国产又大又粗又爽的毛片| 国产在线国偷精品产拍免费yy| 久久久91精品国产一区二区精品 | 亚洲国产精品av| 国产黄色片在线| 国产不卡视频一区二区三区| 中文字幕一区二区三中文字幕| 色婷婷狠狠综合| 精品人妻二区中文字幕| 图片区小说区国产精品视频| 日韩三级.com| 一二三四国产精品| 懂色av一区二区夜夜嗨| 亚洲欧美aⅴ...| 91精品蜜臀在线一区尤物| 国产精品无码一区二区三区| 国产一区二区三区精品欧美日韩一区二区三区| 久久女同精品一区二区| 国产又粗又硬又长又爽| caoporm超碰国产精品| 亚洲国产一区二区a毛片| 日韩欧美成人一区二区| 久久精品色妇熟妇丰满人妻| 成人精品鲁一区一区二区| 亚洲图片一区二区| 精品国产乱码久久久久久老虎| 色老板免费视频| 师生出轨h灌满了1v1| 麻豆成人91精品二区三区| 国产精品久久久久永久免费观看 | 午夜免费福利影院| 久久精品国内一区二区三区| 国产精品久久免费看| 欧洲国产伦久久久久久久| 亚洲av无码一区二区三区观看| 国产一区二区三区最好精华液| 亚洲视频中文字幕| 日韩一级免费观看| 中文国语毛片高清视频| 日本wwwwwww| 国产激情精品久久久第一区二区 | 亚洲品质自拍视频网站| 91精品国产综合久久香蕉麻豆| 久久久精品成人| 女王人厕视频2ⅴk| 久久国产精品99久久久久久老狼| 国产精品久久久久久久久动漫| 欧美精品在线一区二区| 亚洲女人毛茸茸高潮| 亚洲精品成人无码毛片| 国产精品一区久久久久| 亚洲一区在线观看视频| 久久久精品国产免费观看同学| 欧美性一级生活| 人与嘼交av免费| 最新国产精品自拍| 国产精品综合视频| 午夜精品久久一牛影视| 欧美激情一区在线| 欧美一级理论片| 色乱码一区二区三区88| 国产精品天天干| 国产精品日日摸夜夜爽| 国产**成人网毛片九色 | 亚洲国产精品无码久久久久高潮| 丁香激情综合国产|