Django學習--HttpRequest和 HttpResponse 物件
阿新 • • 發佈:2018-11-17
HttpRequest物件
1.提取URL的特定部分
如果想從URL中獲取值,使用正則分組來獲取url中的引數方式有個兩種:
位置引數,引數位置需要一一對應:
應用urls.py
檢視函式中的引數需要和路由的引數一一對應,引數位置不能錯
關鍵字引數,引數的位置可以變,跟關鍵字保持一致即可:
應用的urls.py中,定義路由地址,需要使用?P<名字>給正則分組起名字
檢視函式中的引數,除了request之外的形參位置隨意指定,和路由定義的一致即可.
2.獲取GET請求中的引數
獲取GET請求的引數,形如http://ip:port/route/?key1=value1&key2=value2
1.在檢視函式中通過request.GET獲取請求中?之後的引數,返回的是一個QueryDict物件,類似字典,不同的是QueryDict物件,存在一鍵多值的方式;
2.QueryDict物件
- 通過get(key)獲取值,如果存在多個值得時候,獲取最後值列表中最後一個值
需要獲取多個值得之後,通過getlist(key),獲取鍵所有的值
3.獲取請求體中的資料
1. 表單資料
我們通過postman模擬瀏覽器提交form資料:
提示錯誤
django預設開啟csrf保護,我們暫時關閉csrf保護,在settings檔案中
瀏覽器傳送的form資料,通過request.POST獲取,返回的是QueryDict物件
- 通過get(key) 獲取一個數據
- 通過getlist(key) 獲取所有資料
2. json資料
- 使用request.body獲取非表單提交的資料
- 獲取的資料返回的是二進位制資料,所以我們需要對資料做轉換成json資料
4.獲取請求頭中的資料
- 獲取請求方式 request.method
* 獲取認證使用者 request.user
HttpResponse物件
HttpResponse 物件
HttpResponse (content,content_type,status)對應的引數 content-->返回的內容 content_type--> MIME 型別 status-->響應狀態碼
JsonResponse
若要返回json資料,可以使用JsonResponse來構造響應物件,作用:
- 幫助我們將資料轉換為json字串
- 設定響應頭Content-Type為application/json
如果需要將字典放到列表中,進行轉換的時候,需要將 safe 改為False ,否則會提示錯誤:
將 safe 改為False:
from django.http import JsonResponse
def response(request):
list = [{'name':'itcast'},{'name':'itheima'}]
return JsonResponse(list,safe=False)
redirect
重定向到新的地址中
from django.shortcuts import redirect
def response(request):
return redirect('www.baidu.com')