最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解決Django的request.POST獲取不到內(nèi)容的問題

 更新時間:2018年05月28日 09:23:33   作者:NoneSec  
今天小編就為大家分享一篇解決Django的request.POST獲取不到內(nèi)容的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

我通過如下的一段程序發(fā)送post請求:

import urllib3
pool = urllib3.connection_from_url('http://127.0.0.1:8090')
resp = pool.request('POST', '/polls/', fields={'key1':'value1', 'key2':'value2'}, headers={'Content-Type':'application/json'}, encode_multipart=False)

在服務(wù)器端我用request.POST期望能獲取到<QueryDict: {u'key2': [u'value2'], u'key1': [u'value1']}>,但是我發(fā)現(xiàn)獲取到的是一個空的<QueryDict: {}>,用reqyest.body是能獲取到原始的請求內(nèi)容key2=value2&key1=value1的。

這個時候只能去文檔中找答案了,但是貌似Django中的文檔也沒給出我答案,這時候我就只能通過源碼來找答案了,下面是class HttpRequest(object)中獲取POST QueryDict的函數(shù)部分:

def _load_post_and_files(self):
  """Populate self._post and self._files if the content-type is a form type"""
  if self.method != 'POST':
   self._post, self._files = QueryDict(encoding=self._encoding), MultiValueDict()
   return
  if self._read_started and not hasattr(self, '_body'):
   self._mark_post_parse_error()
   return

  if self.content_type == 'multipart/form-data':
   if hasattr(self, '_body'):
    # Use already read data
    data = BytesIO(self._body)
   else:
    data = self
   try:
    self._post, self._files = self.parse_file_upload(self.META, data)
   except MultiPartParserError:
    # An error occurred while parsing POST data. Since when
    # formatting the error the request handler might access
    # self.POST, set self._post and self._file to prevent
    # attempts to parse POST data again.
    # Mark that an error occurred. This allows self.__repr__ to
    # be explicit about it instead of simply representing an
    # empty POST
    self._mark_post_parse_error()
    raise
  elif self.content_type == 'application/x-www-form-urlencoded':
   self._post, self._files = QueryDict(self.body, encoding=self._encoding), MultiValueDict()
  else:
   self._post, self._files = QueryDict(encoding=self._encoding), MultiValueDict()

函數(shù)看起來有點長,但是我們只要關(guān)注后面的if elif else這三個分支即可,從elif self.content_type == 'application/x-www-form-urlencoded':這個分支能看到只有請求header中的'Content-Type':'application/x-www-form-urlencoded'才會填充request.POST,其它情況下只有一個空的<QueryDict: {}>。

從這個問題也看到了Django對'Content-Type':'application/json'沒有做任何處理,跟我預(yù)想的有一點不一樣。

以上這篇解決Django的request.POST獲取不到內(nèi)容的問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python獲取指定日期范圍內(nèi)的每一天,每個月,每季度的方法

    python獲取指定日期范圍內(nèi)的每一天,每個月,每季度的方法

    這篇文章主要介紹了python獲取指定日期范圍內(nèi)的每一天,每個月,每季度的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • python基于opencv 實現(xiàn)圖像時鐘

    python基于opencv 實現(xiàn)圖像時鐘

    這篇文章主要介紹了python基于opencv 實現(xiàn)圖像時鐘的方法,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2021-01-01
  • Django如何使用jwt獲取用戶信息

    Django如何使用jwt獲取用戶信息

    這篇文章主要介紹了Django如何使用jwt獲取用戶信息,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04
  • Python softmax實現(xiàn)及數(shù)值穩(wěn)定性詳解

    Python softmax實現(xiàn)及數(shù)值穩(wěn)定性詳解

    這篇文章主要為大家介紹了Python softmax實現(xiàn)及數(shù)值穩(wěn)定性詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • Python turtle畫圖庫&&畫姓名實例

    Python turtle畫圖庫&&畫姓名實例

    今天小編就為大家分享一篇Python turtle畫圖庫&&畫姓名實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • set在python里的含義和用法

    set在python里的含義和用法

    在本篇內(nèi)容中我們給大家整理了關(guān)于set在python里的用法含義等相關(guān)知識點內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2019-06-06
  • Django+JS 實現(xiàn)點擊頭像即可更改頭像的方法示例

    Django+JS 實現(xiàn)點擊頭像即可更改頭像的方法示例

    這篇文章主要介紹了Django+JS 實現(xiàn)點擊頭像即可更改頭像的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • Python對PDF文件的常用操作方法詳解

    Python對PDF文件的常用操作方法詳解

    PDF是Portable?Document?Format的縮寫,這類文件通常使用`.pdf`作為其擴(kuò)展名。在日常開發(fā)工作中,最容易遇到的就是從PDF中讀取文本內(nèi)容以及用已有的內(nèi)容生成PDF文檔這兩個任務(wù)。本文為大家介紹了幾個Python中常見的PDF操作,需要的可以參考一下
    2022-05-05
  • Python之reload流程實例代碼解析

    Python之reload流程實例代碼解析

    這篇文章主要介紹了Python之reload流程實例代碼解析,分享了相關(guān)代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • Python locust工具使用詳解

    Python locust工具使用詳解

    這篇文章主要介紹了Python locust工具使用詳解,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-03-03

最新評論

额敏县| 印江| 开阳县| 邳州市| 大丰市| 金坛市| 师宗县| 囊谦县| 百色市| 都匀市| 墨竹工卡县| 应用必备| 竹北市| 兴业县| 大同县| 成都市| 辽宁省| 长垣县| 共和县| 长子县| 庆安县| 九江县| 蓝田县| 泾源县| 无锡市| 武穴市| 安龙县| 鞍山市| 秦皇岛市| 孟村| 英吉沙县| 紫金县| 怀宁县| 垫江县| 桂阳县| 雷波县| 高安市| 安阳市| 平邑县| 天等县| 枝江市|