日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python web开发-flask中response,cookies,session对象使用详解

發布時間:2024/9/5 python 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python web开发-flask中response,cookies,session对象使用详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Response響應對象

?

當一個web請求被服務器處理完后,會返回用戶請求的響應,這時候就要用到響應對象,根據響應給用戶的形式不同,響應對象有以下幾種處理方式

  • 如果返回的是一個合法的響應對象,它會從視圖直接返回。
  • 如果返回的是一個字符串,響應對象會用字符串數據和默認參數創建。
  • 如果返回的是一個元組,且元組中的元素可以提供額外的信息。這樣的元組必須是(response,?status,?headers)?的形式,且至少包含一個元素。?status?值會覆蓋狀態代碼,?headers?可以是一個列表或字典,作為額外的消息標頭值。
  • 如果上述條件均不滿足, Flask 會假設返回值是一個合法的 WSGI 應用程序,并轉換為一個請求對象。
  • 以上從引用官網的一段話,其實簡單來說就是所有的響應都會生成一個合法的響應對象,我們平常用的最多的就是直接返回字符串或是返回一個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的使用

  • 創建一個設置cookies的方法:
  • @app.route("/setCookies")
    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進行用戶是否登錄的驗證

    下面舉例來說明:

  • 設置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对象使用详解的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。