python web開發篇之cookie後端邏輯

2021-10-10 23:55:22 字數 2062 閱讀 6765

views.py檔案

masage = """

面試題:

你是如何理解cookie的? / 你談一談cookie

1. 概念

2. 流程 (大體流程,從http角度分析)

3. 在開發過程中**使用了

4. 你在開發過程中遇到什麼印象深刻的地方

儲存在客戶端的資料叫做 cookie

cookie是儲存在客戶端

cookie是基於網域名稱(ip)的

0.概念

1.流程(原理)

第一次請求過程

① 瀏覽器第一次請求伺服器的時候,不會攜帶任何cookie資訊

② 伺服器接收到請求之後,發現 請求中沒有任何cookie資訊

③ 伺服器設定乙個cookie.這個cookie設定在響應中

④ 瀏覽器接收到這個響應之後,發現響應中有cookie資訊,瀏覽器會將cookie資訊儲存起來

第二次及其之後的過程

⑤ 當瀏覽器第二次及其之後的請求都會攜帶cookie資訊

⑥ 伺服器接收到請求之後,會發現請求中攜帶的cookie資訊,這樣的話就認識是誰的請求了

2.看效果

3.從http協議角度深入掌握cookie的流程(原理)

第一次① 瀏覽器第一次請求伺服器,不會攜帶任何cookie資訊,請求頭中沒有任何cookie資訊

② 伺服器會為響應設定cookie資訊. 響應頭中有set_cookie資訊

第二次及其之後的

③ 瀏覽器第二次及其之後的請求都會攜帶cookie資訊,請求頭中有cookie資訊

④(可選) 在當前我們的**中,沒有在響應頭中設定cookie,所以響應頭中沒有set_cookie資訊

# 1. 先判斷有沒有cookie資訊

# 先假設就是沒有

# 2.獲取使用者名稱

username = request.get.get('username')

# 3. 因為我們假設沒有cookie資訊,我們伺服器就要設定cookie資訊

# max_age # 時間是 從伺服器接收到這個請求時間 + 秒數 計算之後的時間

# httpresponse.set_cookie(cookie名, value=cookie值, max_age=cookie有效期)

response.set_cookie('username', username, max_age=3600) # 給瀏覽器起的名字叫username

# 刪除cookie的2種方式

# response.delete_cookie(key)

# response.set_cookie(key,value,max_age=0)

# 4.返回相應

return response

def get_cookie(request):

massage = """

第二次及其之後的過程

⑤ 當我們的瀏覽器第二次及其之後的請求都會攜帶cookie資訊

⑥ 我們的伺服器接收到請求之後,會發現請求中攜帶的cookie資訊,這樣的話就認識是誰的請求了

"""# 1.伺服器可以接收(檢視)cookie資訊 req.cookies

cookies = request.cookies

# cookies 就是乙個字典

username = cookies.get('username')

# 2. 得到使用者資訊就可以繼續其他的業務邏輯了

pythonweb開發 Python Web開發

參考原文 wsgi介面 wsgi web server gateway inte ce 是乙個介面,用來遮蔽底部的細節 如tcp的建立連線,http原始請求和響應格式等 wsgi介面定義非常簡單,只需要web開發者實現乙個函式,就可以響應客戶端的http請求。這個函式有兩個引數 environ 包含...

在知乎上學 Python Web 開發篇

之前,我們先後整理過3期知乎上有關 python 學習的優質問答和文章索引,以方便大家更好地挖掘及使用知乎上有價值的資訊。參見 在知乎上學 python 入門篇 在知乎上學 python 爬蟲篇 在知乎上學 python 資料分析篇 目前最被廣泛使用的 python web 框架是 django 和...

python Web開發之Flask框架學習

2.3.1 程式和請求上下文 flask從客戶端收到請求時,要讓檢視函式能訪問一些物件,這樣才可以處理請求。請求物件是乙個很好的例子,他封裝了客戶端傳送的http請求。2.6 flask擴充套件 flask被設計成可擴充套件模式,因此沒有提供一些重要的功能,例如資料庫和使用者認證,所以開發者可以自由...