控制Cookies
Cookies是服务端在客户端临时保存信息的主要手段,虽然客户端可以随时进行清除,但是在其中保存一些需要连续处理的业务鉴别信息也是非常常见的选择。Cookies可以通过处理函数中Request
类型参数中的.cookies
属性来访问,.cookies
属性中以字典类型保存了从客户端传来的全部Cookies。
要向客户端写入Cookies需要提前创建HTTPResponse
类型对象,并通过其中的.cookies
属性来设置。HTTPResponse
实例中的.cookies
属性是一个字典类型,要新建一个Cookies项,只需要对一个新的键赋值即可。如果要删除一个已有的Cookies项,只需要用del
关键字删除即可,例如:del response.cookies["sessionid"]
。
HTTPResponse
实例中的每一个Cookies项都是一个字典类型的值,可以通过以下预定义的键值来控制Cookies项的属性。
expires
,日期类型,用于设置Cookies的过期时间。path
,设置Cookies生效的URL。comment
,Cookies的备注。domain
,设置Cookies生效的域名。max-age
,设置Cookies有效的最长秒数。secure
,当设置为True
时,Cookies将只能在HTTPS下生效。httponly
,设置Javascript是否能读取这个Cookies。
在一个处理函数中设置客户端的Cookies可以参考以下示例。
@app.route("/")
async def home(request):
session_id = request.cookies["session_id"]
response = response.text("Hello!")
response.cookies["test"] = "Hello there"
response.cookies["test"]["max-age"] = 60
return response