亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

解決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中的序列化詳細解析

    Python中的序列化詳細解析

    這篇文章主要介紹了Python中的序列化詳細解析,序列化是指把程序中的一個類轉(zhuǎn)化成一個標(biāo)準化的格式,標(biāo)準化的意義是這個格式可以跨程序,跨平臺的被使用,而且保持其原有的內(nèi)容,規(guī)范,需要的朋友可以參考下
    2023-11-11
  • 使用 Python 實現(xiàn)微信消息的一鍵已讀的思路代碼

    使用 Python 實現(xiàn)微信消息的一鍵已讀的思路代碼

    利用python可以實現(xiàn)微信消息的一鍵已讀功能,怎么實現(xiàn)呢?你肯定會想著很復(fù)雜,但是python的好處就是很多人已經(jīng)把接口打包做好了,只需要調(diào)用即可,今天通過本文給大家分享使用 Python 實現(xiàn)微信消息的一鍵已讀的思路代碼,一起看看吧
    2021-06-06
  • 詳解python datetime模塊

    詳解python datetime模塊

    這篇文章主要介紹了python datetime模塊的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-08-08
  • python爬蟲開發(fā)之Request模塊從安裝到詳細使用方法與實例全解

    python爬蟲開發(fā)之Request模塊從安裝到詳細使用方法與實例全解

    這篇文章主要介紹了python爬蟲開發(fā)之Request模塊從安裝到詳細使用方法與實例全解,需要的朋友可以參考下
    2020-03-03
  • 關(guān)于pandas.DataFrame的類SQL操作

    關(guān)于pandas.DataFrame的類SQL操作

    這篇文章主要介紹了關(guān)于pandas.DataFrame的類SQL操作方式,具有很好的參考價值,希望對大家有所幫助,
    2023-08-08
  • Python簡潔優(yōu)雅的推導(dǎo)式示例詳解

    Python簡潔優(yōu)雅的推導(dǎo)式示例詳解

    這篇文章主要給大家介紹了關(guān)于Python簡潔優(yōu)雅的推導(dǎo)式的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • OpenCV 繪制同心圓的示例代碼

    OpenCV 繪制同心圓的示例代碼

    本文主要介紹了OpenCV 繪制同心圓的示例代碼,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • python實現(xiàn)kmp算法的實例代碼

    python實現(xiàn)kmp算法的實例代碼

    這篇文章主要介紹了python實現(xiàn)kmp算法的實例代碼,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-04-04
  • pandas使用get_dummies進行one-hot編碼的方法

    pandas使用get_dummies進行one-hot編碼的方法

    今天小編就為大家分享一篇pandas使用get_dummies進行one-hot編碼的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • Python ORM框架SQLAlchemy學(xué)習(xí)筆記之關(guān)系映射實例

    Python ORM框架SQLAlchemy學(xué)習(xí)筆記之關(guān)系映射實例

    這篇文章主要介紹了Python ORM框架SQLAlchemy學(xué)習(xí)筆記之關(guān)系映射實例,Classic (經(jīng)典模式)和Modern (現(xiàn)代模式),分別介紹了,需要的朋友可以參考下
    2014-06-06

最新評論