python生产实战 Cookie 的那些事儿~

2021-06-08 21:02

阅读:341

大众文学网:

点击python编程从入门到实践置顶 公众号重磅 python入门资料,第一时间送达

 

技术图片

 

还是牛

 

 

读完需要

5分钟

速读仅需 2 分钟

 

 

/ python 入门 Cookie 处理 /

本篇是对高性能服务端框架 fastapi 请求部分的拾遗,主要会介绍 Cookie 。通过本部分的学习可以对请求的信息做一定程度的预处理,想做深度的研究和自定制可以持续关注,后续的篇章会从源码的角度去分析,这里简单提一下我的思考逻辑:1.先会用 2.能满足业务需求 3.从自己感兴趣的部分的源码开始进行研究再结合自己生产环境出现的 bug 进行反查相关源码进行深度学习

1

 

   

Cookie 操作

1.1

 

   

什么是 Cookie

本节先介绍一下 Cookie,若你对 Cookie 已是很清楚了则可跳过直接看下一小结。

我们先看一下百度百科给出的解释:
Cookie 有时也用其复数形式 Cookies。类型为“小型文本文件”,是某些网站为了辨别用户身份,进行 Session 跟踪而储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息。
Cookie 是一个保存在客户机中的简单的文本文件, 这个文件与特定的 Web 文档关联在一起, 保存了该客户机访问这个 Web 文档时的信息, 当客户机再次访问这个 Web 文档时这些信息可供该文档使用。由于“Cookie”具有可以保存在客户机上的神奇特性, 因此它可以帮助我们实现记录用户个人信息的功能, 而这一切都不必使用复杂的 CGI 等程序。

举例来说, 一个 Web 站点可能会为每一个访问者产生一个唯一的 ID, 然后以 Cookie 文件的形式保存在每个用户的机器上。如果使用浏览器访问 Web, 会看到所有保存在硬盘上的 Cookie。在这个文件夹里每一个文件都是一个由“名/值”对组成的文本文件,另外还有一个文件保存有所有对应的 Web 站点的信息。在这里的每个 Cookie 文件都是一个简单而又普通的文本文件。透过文件名, 就可以看到是哪个 Web 站点在机器上放置了 Cookie(当然站点信息在文件里也有保存)。

一句话总结: Cookie 做身份识别功能。

1.2

 

   

fastapi 读取 Cookie 信息

在 fastapi 中,我们可以利用 Cookie 模块来声明 cookies。Cookie 是 Query、Path 的姐妹类,它们都继承自 Param 类。

from fastapi import Cookie, FastAPIapp = FastAPI()cookie_info: str = Cookie(None)@app.get("/get_cookie/")async def read_cookie_info(*, cookie_info: str = Cookie(None)):    return {"cookie_info": cookie_info}

技术图片

 

 

1.3

 

   

fastapi 返回 Cookie 信息

可在 Response 中返回 Cookie 信息给客户端。

使用 Response 参数

可以在路径操作函数中声明 Response 参数,然后给这个临时的 Response 对象设置 cookie 信息。fastapi 通过这个临时的 Response 对象解析出 cookie 信息,然后放入到最终返回的 Response 对象中。也可以在依赖项中使用 Response 参数,然后设置 cookie 信息。

from fastapi import FastAPI, Responseapp = FastAPI()@app.get("/get_cookie/")def read_cookie_info(response: Response):    response.set_cookie(key="session_info", value="xsxaxsafafa=fasfa=faafakfaslkfla;afsasfafafssda")    return {"message": "add cookie"}

技术图片

直接返回 Response

我们也可以在直接返回的 Response 对象中设置 cookie 信息。

from fastapi import FastAPIfrom fastapi.responses import JSONResponse
app = FastAPI()

@app.get("/get_cookie/")def read_cookie_info(): content = {"message": "add cookie"} response = JSONResponse(content=content) response.set_cookie(key="session_info", value="xsxaxsafafa=fasfa=faafakfaslkfla;afsasfafafssda") return response

技术图片

 

 

2

 

   

总结

1.解释了什么是 Cookie
2.在 fastapi 中如何使用和设置 Cookie

 

 

原创不易,只愿能帮助那些需要这些内容的同行或刚入行的小伙伴,你的每次 点赞分享 都是我继续创作下去的动力,我希望能在推广 python 技术的道路上尽我一份力量,欢迎在评论区向我提问,我都会一一解答,记得一键三连支持一下哦!

 

加入python学习交流微信群,请后台回复「入群」

 

 

往期推荐

python生产实战 python 闭包之庖丁解牛篇

大型fastapi项目实战 靠 python 中间件解决方案涨薪了

大型fastapi项目实战 高并发请求神器之aiohttp(下)

大型fastapi项目实战 高并发请求神器之aiohttp(上) [建议收藏]

 


评论


亲,登录后才可以留言!