Flask cookie

一 什么是cookie
        什么是cookie?若是单单从数据结构的角度来讲,它能够被理解成用来保存数据的一个dictionary,由一组组键值对组成.若是从做用上来讲,咱们知道Http协议是一种无状态的协议.什么叫无状态呢,就是本次的客户端请求不会保留上一次客户端请求的状态,简单点说就是这样会要求咱们每次在浏览器中点开一个网站的连接都会输一次帐户和密码.cookie就是用来解决这个问题的.web

        为了解决上述问题,咱们第一次登陆web服务器,服务端就会在它的响应中的Set-Cookie字段中发送一些键值对,这就包括一个Session ID以及其余一些信息(也包括咱们自定义的cookie中的键值对),并告诉客户端在本地缓存这个cookie.而后客户端之后进行连接时每次都会发送这个Session ID,服务器一看是哪一个Session ID就知道是哪一个客户端发起的连接了,就不会要求咱们再次输帐户和密码验证了.flask

        咱们在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并返回给视图函数:cookie

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

数据结构

相关文章
相关标签/搜索