HttpResponse 和 JsonResponse 的直觀區別以及 response.json()方法

HttpResponse對象

Django服務器接收到客戶端發送過來的請求後,會將提交上來的這些數據封裝成一個HttpRequest對象傳給視圖函數。

那麼視圖函數在處理完相關的邏輯後,也需要返回一個響應給瀏覽器。
而這個響應,我們必須返回HttpResponseBase或者他的子類的對象。
而HttpResponse則是HttpResponseBase用得最多的子類。

常用屬性:
content:返回的內容。
status_code:返回的HTTP響應狀態碼。
content_type:返回的數據的MIME類型,默認爲text/html。

JsonResponse類:

用來對象dump成json字符串,然後返回將json字符串封裝成Response對象返回給瀏覽器。
並且他的Content-Type是application/json。
返回的是JsonResponse對象,requests獲取後直接調用json()方法轉變爲python字典

請求獲取HttpResponse對象

import requests, json
r = requests.get('http://192.168.207.160:9000/api/qualitygates/')
state=json.loads(r.text).get('projectStatus').get('status')
  • 請求的內容是json格式數據,先要loads方法反序列化爲python的字典格式,然後進行操作
{
 "projectStatus": {
  "status": "ERROR",
  "conditions": [{
   "status": "ERROR",
   "metricKey": "new_security_rating",
   "comparator": "GT",
   "periodIndex": 1,
   "errorThreshold": "1",
   "actualValue": "5"
  }
}

請求獲取JsonResponse對象

r = requests.get('http://192.168.207.160:9000/api/qualitygates/')
# 直接調用json方法,返回python下的字典數據
state1 = r.json()
state1.get('projectStatus')

補充

# 字典序列化成json字符串
d = {'name': 'jod'}
j = json.dumps(d)

# json字符串反序列化成字典
d = json.loads(j)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章