前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python生产实战 Cookie 的那些事儿~

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

作者头像
python编程从入门到实践
修改2021-03-16 10:56:43
5060
修改2021-03-16 10:56:43
举报
文章被收录于专栏:python编程军火库

还是牛

读完需要 5 分钟

速读仅需 2 分钟

/ python 入门 Cookie 处理 /

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

建议大家可以使用 腾讯云服务器 进行云上测试和验证自己的代码(CDN)

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 类。

代码语言:javascript
复制
from fastapi import Cookie, FastAPI
app = 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 信息。

代码语言:javascript
复制
from fastapi import FastAPI, Response
app = 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 信息。

代码语言:javascript
复制
from fastapi import FastAPI
from 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 技术的道路上尽我一份力量,欢迎在评论区向我提问,我都会一一解答,记得一键三连支持一下哦!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-03-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 python编程从入门到实践 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档