登陸流程: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 首部。具體的頭部信息取決於客戶端和服務器,下面是一些示例:
request.user
一個 AUTH_USER_MODEL 類型的對象,表示當前登陸的用戶。
若是用戶當前沒有登陸,user 將設置爲 django.contrib.auth.models.AnonymousUser 的一個實例。你能夠經過 is_authenticated() 區分它們
把request傳給前端的時候,前端能夠經過 {% if request.user.is_authenticated %}判斷用戶時候登陸
request.session
一個既可讀又可寫的相似於字典的對象,表示當前的會話