Flask Cookies

2020-07-22 10:42 更新

Flask Cookies

Cookie以文本文件的形式存儲在客戶端的計算機(jī)上。其目的是記住和跟蹤與客戶使用相關(guān)的數(shù)據(jù),以獲得更好的訪問者體驗和網(wǎng)站統(tǒng)計信息。

Request對象包含Cookie的屬性。它是所有cookie變量及其對應(yīng)值的字典對象,客戶端已傳輸。除此之外,cookie還存儲其網(wǎng)站的到期時間,路徑和域名。

在Flask中,對響應(yīng)對象設(shè)置cookie。使用make_response()函數(shù)從視圖函數(shù)的返回值獲取響應(yīng)對象。之后,使用響應(yīng)對象的set_cookie()函數(shù)來存儲cookie。

讀回cookie很容易。request.cookies屬性的get()方法用于讀取cookie。

在以下Flask應(yīng)用程序中,當(dāng)您訪問'/' URL時,會打開一個簡單的表單。

@app.route('/')
def index():
   return render_template('index.html')

此HTML頁面包含一個文本輸入。

<html>
   <body>
   
      <form action = "/setcookie" method = "POST">
         <p><h3>Enter userID</h3></p>
         <p><input type = 'text' name = 'nm'/></p>
         <p><input type = 'submit' value = 'Login'/></p>
      </form>
      
   </body>
</html>

表單發(fā)布到'/ setcookie' URL。相關(guān)聯(lián)的視圖函數(shù)設(shè)置Cookie名稱userID并呈現(xiàn)另一個頁面。

@app.route('/setcookie', methods = ['POST', 'GET'])
def setcookie():
   if request.method == 'POST':
   user = request.form['nm']
   
   resp = make_response(render_template('readcookie.html'))
   resp.set_cookie('userID', user)
   
   return resp

'readcookie.html'包含指向另一個視圖函數(shù)getcookie()的超鏈接,它讀回并在瀏覽器中顯示Cookie值。

@app.route('/getcookie')
def getcookie():
   name = request.cookies.get('userID')
   return '<h1>welcome '&plus;name&plus;'</h1>'

運行應(yīng)用程序,并訪問http://localhost:5000/

ReadCookie HTML

設(shè)置cookie的結(jié)果顯示為這樣:

Result of Setting Cookie

讀回cookie的輸出如下所示:

Reading Cookie Back


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號