Cookie以文本文件的形式存储在客户的计算机上,其目的是记录客户访问网页的有关数据。

请求对象(request object)包含cookie的属性,是客户端已传输的所有cookie变量及其对应值 ,除此以外,还存储其有效期限,路径和站点域名。

在下面的Flask应用程序中,当您访问‘/' 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>

表单已发布到"/setcookie" URL。关联的视图函数设置Cookie名称 userID 并呈现另一个页面。

@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值。

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

运行该应用程序并访问 http://localhost:5000/

ReadCookie HTML

设置cookie的输出显示如下:

Result of Setting Cookie

读取cookie的输出如下所示。

Reading Cookie Back

参考链接

https://www.learnfk.com/flask/flask-cookies.html