【Sanic框架】Python异步非阻塞框架Sanic之用户信息保存Cookies读写

首先要问一个问题为什么存在Cookie与Session?
因为在通信的过程中,Http是一个无状态的协议。我们试着模拟一个场景,当我们登录一个网站后台,只是靠Http协议进行通信,当我们第一次登录后进入后台,我们点击后台中的功能模块,发现又跳回了登录页面。为什么会出现这种问题,这是因为后台程序中每次判断登录后的权限操作,会进行状态的判断,而http协议是无状态的协议,每次发送请求就认为是未登录的状态。

面对这种无状态的情况,Cookie与Session会话就提供了解决的方案。本篇文章只讲述Cookies,写Web应用经常会用到Cookies。Sanic可以读写Cookies,并以key-value(键值对)的方式存储。但是因为Cookies很容易被客户端修改,所以不能把登录信息直接保存到cookies里面,而是经过加密后再放到cookies。

一、读取cookies

用户(客户端)发来的数据都保存在Request对象里面,其中也包含cookies。通过该对象的cookies字典即可访问用户的cookies。

@app.route("/set_cookie")
async def set_cookie(request):
  response = text("set cookie success")
  response.cookies["test"] = "test"
  response.cookies["test"]["max-age"] = 10
  return response

二、写入Cookies

在这里插入图片描述
返回响应时,可以吧cookies写入到Response对象。

@app.route("/get_info")
async def get_info(request):
  test = request.cookies.get("test")
  return text("cookie:{}".format(test))

在这里插入图片描述
在这里插入图片描述

三、删除cookies

可以在语义上或显式删除Cookie。

@app.route("/del_info")
async def del_info(request):
  response = text("delete cookie success")
  del response.cookies["test"]
  return response
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值