- ASGI入门笔记:ASGI入门
- FastAPI入门一:FastAPI路径操作函数与响应
- FastAPI入门二:FastAPI路径参数与查询参数
- FastAPI入门三:FastAPI请求体(Request Body)
- FastAPI入门四:FastAPI中Cookie参数与Header参数
前面接触到了用于注解的 Path、Query、Body、Field、Form、File、UploadFile等,接下来看看Cookie和Header。
内容小记:
- Cookie 的设置与读取,Response参数使用与Response直接使用
- Header的读取,Request参数使用
注:本文代码在python3.11下验证
Cookie
先看看Cookie读取与设置。
- Cookie读取和其他变量一样,使用Cookie对变量进行注解即可。
- Cookie的写入,需要对response进行操作,调用其
set_cookie()
函数
一个完整的例子如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
从例子中看到,获取cookie信息很简单。
使用Response参数 设置Cookie
上面的例子中,我们在路径函数中定义一个类型为 Response
的参数,并在这个临时响应对象中设置了cookie。
FastAPI会使用这个临时响应对象去装在这些cookies信息(同样还可以装在headers和状态码信息),最终将这些信息和通过response_model
转化过的数据合并到最终的响应里面。
1 2 3 4 |
|
直接使用Response 设置Cookie
除了上面方法,还可以直接创建要返回的response对象,并对接进行设置:
1 2 3 4 5 |
|
Header
看看如何读取Header信息
使用Header注解
和Cookie获取操作基本一样,只不过使用Header进行注解。
1 2 3 4 5 6 7 8 |
|
注意,我们使用的是 user_agent
,而不是将首字母大写为 User_Agent
或类似的东西。
这是因为:
- 大多数标准的headers用 "连字符 (
-
)" 分隔。但是像user-agent
这样的变量在Python中是无效的。
- 默认情况下,
Header
将把参数名称的字符从下划线 (_
) 转换为连字符 (-
) 来提取并记录 headers.
- HTTP headers 是大小写不敏感的,因此可以使用标准Python样式("snake_case")声明它们。
使用Request参数
1 2 3 4 5 6 7 8 |
|
注:
- 与本例子类似,cookies 也可以通过Request参数进行获取。
参考
- https://fastapi.tiangolo.com
- https://docs.pydantic.dev/latest/
- https://fastapi.tiangolo.com/tutorial/cookie-params/
- https://fastapi.tiangolo.com/advanced/response-cookies/