sanic cookie

http headers 中可以携带cookie信息,但首次request访问是没有cookie的,服务器根据需要(一般用在登录验证身份时)在response 中返回cookie,客户端会根据这个cookie信息设置自己再次request时的cookie,这样,服务器在接收到请求后会知道这个请求是上次请求的延续。服务器还可以维护cookie 与身份信息的对应关系,将此kv保存在服务器端,用于会话session保持。

   sanic 中cookie 有三种用法: 读取、写入和删除。

读取: request.cookies.get("cookiename")

写入: response.cookies[''cookiename] = "your cookie name"

           response.cookies[''cookiename]["max-age"] = 200  

删除: del response.cookies["cookiename"]

from sanic import Sanic
from sanic import response
from sanic.response import text


app = Sanic("hello, this is my first sanic app")  #Sanic() 用于实例化

@app.route("/")  
async def set_cookie(request):  
    if request.cookies.get("user") is None:
        response = text(" Counld not  find cookie user ,so the program set the cookie  {}".format(request.cookies.get("user")))
        response.cookies['user'] = "username"       
        response.cookies['user']["max-age"] = 100


    else:      
        response = text("found cookie user {} is headers  ".format(request.cookies.get("user")))
        #response.cookies['user']['domain'] = 'cvicse2'
        response.cookies['user'] = "username2"
        response.cookies['user']["max-age"] = 200
        
    return response

@app.get("/delcookie")
async def del_cookie(request):
    if request.cookies.get("user") is None:
        response = text(" your request has no cookie ")
        
    else:      
        response = text(" your request has cookie ,this page will remove cookie")        
        del response.cookies['user']         
        
    return response

if __name__ == "__main__":
    app.run(host="0.0.0.0", port=8000, access_log=False)

通过开发者工具可以看到cookies的交互情况

第一次访问,request 没有cookie ,response 会带有cookie

第二次访问,request携带cookie,response 返回修改的cookie值username2

访问delcookie 时

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值