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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

flask处理cookie

發布時間:2024/7/5 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 flask处理cookie 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一 什么是cookie

????????什么是cookie?如果單單從數據結構的角度來說,它可以被理解成用來保存數據的一個dictionary,由一組組鍵值對組成.如果從作用上來說,我們知道Http協議是一種無狀態的協議.什么叫無狀態呢,就是本次的客戶端請求不會保留上一次客戶端請求的狀態,簡單點說就是這樣會要求我們每次在瀏覽器中點開一個網站的鏈接都會輸一次賬戶和密碼.cookie就是用來解決這個問題的.

??????? 為了解決上述問題,我們第一次登錄web服務器,服務端就會在它的響應中的Set-Cookie字段中發送一些鍵值對,這就包括一個Session ID以及其他一些信息(也包括我們自定義的cookie中的鍵值對),并告訴客戶端在本地緩存這個cookie.然后客戶端以后進行鏈接時每次都會發送這個Session ID,服務器一看是哪個Session ID就知道是哪個客戶端發起的鏈接了,就不會要求我們再次輸賬戶和密碼驗證了.

??????? 我們在flask中自定義cookie,實際上就是在響應Response的Set-Cookie字段中增加我們自定義的鍵值對.而獲取cookie,就是通過請求Request中通過鍵獲取其對應的值.

二 設置cookie

????? 通過響應對象的set_cookie方法我們可以設置自定義cookie:

  • @app.route('/set_cookie')
  • def set_cookie():
  • response=make_response('Hello World');
  • response.set_cookie('Name','Hyman')
  • return response

  • ?????? 我們還可以指定cookie的有效時長,下面的代碼把有效時長設置成了30天.通常情況下,我們還可以在瀏覽器上設置cookie的有效時長,而且瀏覽器上配置的有效時長優先級要高于我們在代碼中設置的.

  • outdate=datetime.datetime.today() + datetime.timedelta(days=30)
  • response.set_cookie('Name','Hyman',expires=outdate)
  • 三 獲取cookie

    ??????? 我們可以使用Request對象cookies字段的get方法來獲取我們所需要的cookie,下面的代碼我們直接獲取cookie并返回給視圖函數:

  • @app.route('/get_cookie')
  • def get_cookie():
  • name=request.cookies.get('Name')
  • return name

  • ????????

    ??????? 我們還可以在模板中獲取cookie,然后渲染模板.

    test.html:

    <h1>My name is {{request.cookies.get('Name')}}</h1>


    渲染模板:

  • @app.route('/get_template')
  • def get_template():
  • return render_template('test.html')


  • 四 刪除cookie

    ??????? 共有三種方法可以刪除一個cookie:

    (1) 可以通過在瀏覽器中設置來清除cookie.

    (2) 使用Response的set_cookie進行清除

  • @app.route('/del_cookie')
  • def del_cookie():
  • response=make_response('delete cookie')
  • response.set_cookie('Name','',expires=0)
  • return response

  • (3)使用Response的 delete_cookie方法.

  • @app.route('/del_cookie2')
  • def del_cookie2():
  • response=make_response('delete cookie2')
  • response.delete_cookie('Name')
  • return response
  • 轉載于:https://www.cnblogs.com/Dark-fire-liehuo/p/9922707.html

    總結

    以上是生活随笔為你收集整理的flask处理cookie的全部內容,希望文章能夠幫你解決所遇到的問題。

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