[译]Flask教程--Cookie

cookie是保存在客户端电脑中一种文本形式的数据. 它的作用是记录并追踪客户端使用方面的数据, 用于统计数据和达到更好的用户体验.

Flask的全局request对象包含了cookie属性, 它是个字典对象, 其键值对就是客户端收到的cookie的名称和值. 并且, cookie还记录了自己的过期时间, 路径, 以及网站域名.

在Flask中, 返回响应对象中会设置cookie对象, 我们可以使用make_response()方法来从一个返回值或视图函数中获得一个响应对象. 然后, 可以使用响应对象的set_cookie()方法来设置储存cookie.

读取cookie也很简单, request.cookiesget()方法可以从请求中读取一个cookie.

下面的应用中, 当我们进入URL '/' 时, 一个带有简单表单的页面被打开:

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

下面的HTML中, index.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>

这个表单被post到URL'/setcookie', 相关的视图函数设置了一个名为userId的cookie, 并渲染了另一个页面.

@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 包含了一个链接到另一个视图函数getcookie()的超链接. 这个函数读取我们之前设置的cookie并展示在浏览器中.

相关推荐