Django中HttpRequest常用參數介紹


HttpRequest對象常用參數介紹,以及前端不同請求方式(http方法/Content-Type類型)對應的參數獲取方式。

一、HttpRequest對象

django請求對象的詳細參數以及實現方式可以在django.http.request查看源碼具體分析,也可以查看官方文檔https://docs.djangoproject.com/en/3.0/ref/request-response/

1.屬性介紹

(1) request.scheme

請求的協議種類(http/https)

(2) request.path

請求頁面的完整路徑(get_full_path()在path的基礎上還有查詢條件)

(3) request.method

請求使用的http方法(POST,GET,DELETE,PUT...)

(4) request.content_type

請求的MIME類型 

(5) request.GET/request.POST

get/post請求中的所有參數,類似於字典的對象

(6) request.COOKIES

請求包含的cookie字典

(7) request.FILES

上載文件的類字典對象

(8) request.headers(Django2.2新功能)

獲取請求headers里面的內容,不區分大小寫,類似字典的對象

request.headers["Cotent-Length"]  請求報文中實體主體的字節大小

request.headers["Content-Type"]  請求的MIME類型 

request.headers["User-Agent"]  請求的用戶代理

(9) request.META

包含所有HTTP頭部信息的字典

  • CONTENT_LENGTH –請求正文的長度(以字符串形式) 
  • CONTENT_TYPE –請求正文的MIME類型
  • HTTP_ACCEPT –響應可接受的內容類型
  • HTTP_ACCEPT_ENCODING –響應的可接受編碼
  • HTTP_ACCEPT_LANGUAGE –可接受的響應語言。
  • HTTP_HOST –客戶端發送的HTTP Host標頭
  • HTTP_USER_AGENT –客戶端的用戶代理字符串。
  • REMOTE_ADDR –客戶端的IP地址。
  • REMOTE_HOST –客戶端的主機名
  • SERVER_NAME –服務器的主機名
  • SERVER_PORT –服務器的端口(以字符串形式)
  • SERVER_PROTOCOL –http協議版本(HTTP/1.1)

(10) request.user

當前登錄用戶的實例

(11) request.session

代表當前會話的可讀可寫,類似於字典的對象(刪除用戶登錄的session,request.session.delete(session_key) 

 2.方法介紹

(1) request.get_host()

獲取主機域名或者IP加端口號

(2) request.get_port()

請求端口號

(3) request.is_secure()

如果使用的是Https,則返回True,表示連接是安全的

 (4) request.get_full_path()

帶有請求參數的完整path

 二、請求參數獲取

1.content-type為application/json(消息主體是序列化后的json字符串)

如果當前端請求的content-type為json字符串的時候,django需要通過json.loads(request.body)來獲取請求體里面的參數

2.content-type為application/x-www-form-urlencode(數據被編碼為key/value,這是標准的編碼格式)

(1)當請求方式為get/post

當請求方式為post/get的時候,可以直接通過request.GET.get()/request.POST.get()來直接獲取請求的參數

(2)當請求方式為delete/put/patch/options...

當請求方式不為get/post的時候,在獲取前端請求的參數,需要把request.body轉化為QueryDict對象,然后通過get方法獲取想要的參數即可(QueryDict(request.body).get()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM