request對象

登陸流程:html

輸入127.0.0.1/login前端

把瀏覽器信息,客戶端地址,訪問地址等封裝到request裏,以GET方式發送給login的url(由於是訪問頁面,因此是GET請求)django

匹配到對應的url瀏覽器

在根據url匹配處處理函數,直接顯示頁面,完成訪問登陸頁面服務器

 

在登陸頁面輸入用戶名密碼,點擊登陸cookie

form表單把輸入的信息,瀏覽器信息,客戶端地址,訪問地址等封裝到request對象裏,以post的形式發送給login的urlsession

匹配到對應的url函數

根據url匹配處處理函數,發現是post請求,讓post處理post

POST處理完,把登陸用戶等信息封裝到request裏,和上下文一塊兒傳給login.html,用來渲染login.html編碼

request對象的屬性

request.scheme

表明請求的方案,http或者https

request.path

請求的路徑,好比請求127.0.0.1/org/list,那這個值就是/org/list

request.get_full_path(),全路徑,有參數也是帶上的。如 /org/list?a=1&b=2

request.method

表示請求使用的http方法,GET或者POST請求

request.encoding

表示提交數據的編碼方式

request.GET

獲取GET請求

request.POST

獲取post的請求,好比前端提交的用戶密碼,能夠經過request.POST.get()來獲取

另外:若是使用 POST 上傳文件的話,文件信息將包含在 FILES 屬性中

request.COOKIES

包含全部的cookie

request.META

一個標準的Python 字典,包含全部的HTTP 首部。具體的頭部信息取決於客戶端和服務器,下面是一些示例:

  • CONTENT_LENGTH —— 請求的正文的長度(是一個字符串)。
  • CONTENT_TYPE —— 請求的正文的MIME 類型。
  • HTTP_ACCEPT —— 響應可接收的Content-Type。
  • HTTP_ACCEPT_ENCODING —— 響應可接收的編碼。
  • HTTP_ACCEPT_LANGUAGE —— 響應可接收的語言。
  • HTTP_HOST —— 客服端發送的HTTP Host 頭部。
  • HTTP_REFERER —— Referring 頁面。
  • HTTP_USER_AGENT —— 客戶端的user-agent 字符串。
  • QUERY_STRING —— 單個字符串形式的查詢字符串(未解析過的形式)。
  • REMOTE_ADDR —— 客戶端的IP 地址。
  • REMOTE_HOST —— 客戶端的主機名。
  • REMOTE_USER —— 服務器認證後的用戶。
  • REQUEST_METHOD —— 一個字符串,例如"GET" 或"POST"
  • SERVER_NAME —— 服務器的主機名。
  • SERVER_PORT —— 服務器的端口(是一個字符串)

request.user

一個 AUTH_USER_MODEL 類型的對象,表示當前登陸的用戶。

若是用戶當前沒有登陸,user 將設置爲 django.contrib.auth.models.AnonymousUser 的一個實例。你能夠經過 is_authenticated() 區分它們

把request傳給前端的時候,前端能夠經過 {%  if request.user.is_authenticated  %}判斷用戶時候登陸

request.session

個既可讀又可寫的相似於字典的對象,表示當前的會話

相關文章
相關標籤/搜索