本文实例讲述了Sanic框架Cookies操作。分享给大家供大家参考,具体如下:
简介
Sanic是一个类似Flask的Python 3.5+ Web服务器,它的写入速度非常快。除了Flask之外,Sanic还支持异步请求处理程序。这意味着你可以使用Python 3.5中新的闪亮的异步/等待语法,使你的代码非阻塞和快速。
在上一篇《Sanic框架配置》中已经讲到,如何在Sanic进行相关的配置,接下来将介绍一下Sanic的Cookies的使用,Cookies是用户浏览器内部的一些数据,Sanic可以写入和读取存储为键值对的Cookie
写入Cookies
在返回响应时,可以在Response
对象上设置Cookie:
1
2
3
4
5
6
|
from sanic.response import text
@app .route( "/set_cookie" )
async def set_cookie(request):
response = text( "set cookie success" )
response.cookies[ "test" ] = "test"
return response
|
Cookie可以像字典一样设置,并且具有如下参数:
- expires:过期时间,Cookie在客户端浏览器上过期的时间
-
path:此Cookie使用的URL的子集。默认为
/
- comment:评论(元数据)
- domain:Cookie的有效域
- max-age:Cookie的活跃秒数
- secure:指定Cookie是否仅通过HTTPS发送
- httponly:指定Cookie是否不能被Javascript读取
举个例子:
1
2
3
4
5
6
|
@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
|
设置此Cookie的活跃秒数为10,反复获取此Cookie会发现,过了10s后此Cookie不存在了
读取Cookies
用户的Cookie可以通过Request
对象的cookies
字典进行访问:
1
2
3
4
5
|
from sanic.response import text
@app .route( "/get_info" )
async def get_info(request):
test = request.cookies.get( "test" )
return text( "cookie:{}" . format (test)
|
删除Cookies
可以在语义上或明确的删除Cookie
1
2
3
4
5
6
|
from sanic.response import text
@app .route( "/del_info" )
async def del_info(request):
response = text( "delete cookie success" )
del response.cookies[ "test" ]
return response
|
希望本文所述对大家Python程序设计有所帮助。
原文链接:https://blog.csdn.net/y472360651/article/details/80207717