python web开发-flask中response,cookies,session对象使用详解
Response響應對象:
?
當一個web請求被服務器處理完后,會返回用戶請求的響應,這時候就要用到響應對象,根據響應給用戶的形式不同,響應對象有以下幾種處理方式
以上從引用官網的一段話,其實簡單來說就是所有的響應都會生成一個合法的響應對象,我們平常用的最多的就是直接返回字符串或是返回一個template。最終都會被flask處理成response對象。
?
Cookies對象:
?
Cookies用于在客戶端存儲一些信息, 當flask應用響應用戶請求時可以設置cookies的值,當用戶請求flask應用時可以獲取cookies的值。
簡單來說,設置cookies的方式為:
responseObj.set_cookies(“xxx”)? ,此處的responseObj是一個response的實例,xxx是cookies的名稱
獲取cookies的方式為
request.cookies.get(“xxx”),此處的request是全局request對象,xxx是cookies的名稱
?
下面通過一個例子來說明cookies的使用
def setCookies():
res = make_response("this page will set a cookies")
res.set_cookie("myCookies","my first cookies")
return res
?
注:需要import make_response方法
2. 創建一個獲取cookies的方法
@app.route("/getCookies")def getCookies():
myCookies = request.cookies.get("myCookies")
return myCookies
?
3. 測試應用
訪問 /setCookies 方法
?
?
訪問/getCookies方法
?
?
?
?
Session對象:
?
它允許你在不同請求間存儲特定用戶的信息。它是在 Cookies 的基礎上實現的,并且對 Cookies 進行密鑰簽名。這意味著用戶可以查看你 Cookie 的內容,但卻不能修改它,除非用戶知道簽名的密鑰。
Session可以通過session[‘xxx’]=’yyy’進行設置,其中xxx是key值,yyy是session的value。
通過session.pop(‘xxx’,none)把key是xxx的session移除
一般用session進行用戶是否登錄的驗證
下面舉例來說明:
使用下面的代碼
@app.route("/setSession")def setSession():
session["userName"] = "my session"
return session["userName"]
使用session時要先設置app_secret不然會報錯:
RuntimeError: The session is unavailable because no secret key was set. Set the secret_key on the application to something unique and secret.
在調用此代碼之前加上secret_key的設置
app.secret_key = "1234"安全起見,secret_key要設置的復雜一些,這里演示用就簡單設置了。
2. 驗證session
代碼如下:
@app.route("/checkSession")def checkSession():
if "userName" in session:
return "userName exist"
else:
return "userName lost"
?
3. 移除session
代碼如下:
@app.route("/removeSession")def removeSession():
session.pop("userName",None)
return "remove session!"
訪問/setSession
?
?
驗證session 訪問/checkSession
?
?
證明session存在
下一步,移除session
?
?
然后我們再次驗證session。
?
?
Session已丟失
轉載于:https://www.cnblogs.com/itxb/p/8616607.html
總結
以上是生活随笔為你收集整理的python web开发-flask中response,cookies,session对象使用详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Docker入门 - 005 Docke
- 下一篇: Vue 中的组件