Django請求與響應

Django請求與響應

服務器獲取請求的4種方式

P.S. 利用HTTP協議向服務器傳參的4種請求:
  • 查詢字符串
  • 請求體
  • URL路徑參數
  • 請求頭
1.提取查詢字符串
request.GET

P.S. 在 HttpRequest 對象中,屬性 GET 和 POST 得到的都是 django.http.QueryDict 所創建的實例。這是一個 Django 自定義的類似字典的類,用來處理同一個鍵帶多個值的情況,專門用來存儲請求中提取的查詢字符串參數和請求體參數。

2.提取請求體數據
表單類型:
request.POST
JSON類型:
request.body

P.S. 該方法獲取的是字節類型的原始數據,需要調用json模塊轉換數據類型。

3.提取URL路徑參數

P.S. 使用默認的路由轉換語法,直接用path(),需要使用自定義路由轉換的正則表達式,則需要用re_path()。

path()/re_path()

P.S. Django默認封裝用於路由轉換的正則表達式:

DEFAULT_CONVERTERS = {
 'int': IntConverter(), # 匹配正整數,包含0
 'path': PathConverter(), # 匹配任何非空字符串,包含了路徑分隔符
 'slug': SlugConverter(), # 匹配字母、數字以及橫槓、下劃線組成的字符串
 'str': StringConverter(), # 匹配除了路徑分隔符(/)之外的非空字符串,這是默認的形式
 'uuid': UUIDConverter(), # 匹配格式化的uuid,如 075194d3-6885-417e-a8a8-6c931e272f00
}
4.提取請求頭數據
request.META

服務器響應請求的4種方式

1.響應多種數據類型
HttpResponse(content=響應體, content_type=響應體數據類型,默認爲text/html, status=狀態碼,默認爲200)
2.響應JSON類型
http.JsonResponse(dict_data)
http.JsonResponse(list_data, safe=False)
3.重定向

P.S. 這裏的重定向是指當某個操作完成後,需要將用戶引導到另外一個邏輯或頁面。

redirect()

P.S. 重定向還可以搭配reverse()方法,通過給路由起別名,完成路由的反向解析。

4.渲染並響應HTML模板

P.S. 通俗理解就是將context的內容,加載到templates中定義的文件,返回一個渲染後的 HttpResponse 對象。

render(request, template_name, context)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章