大家好,我是Java1234_小锋老师,最近更新《2027版 一天学会 FastAPI Python  web开发 视频教程(无废话版)》专辑,感谢大家支持。

本课程主要介绍和讲解FastAPI简介,HelloWorld实现,自动生成交互式API文档,路径参数,查询参数,请求体,参数校验,响应模型 ,表单数据和模型,中间件,依赖注入,集成SQLAlchemy ORM 操作数据库,集成Pydantic数据校验等

视频教程+课件+源码打包下载:

链接:https://pan.baidu.com/s/1_NzaNr0Wln6kv1rdiQnUTg
提取码:0000

Cookie&Header参数获取

Cookie 是服务器发送到用户浏览器并保存在本地的一小块数据。它就像网站发给你的“临时身份卡”——浏览器每次发起请求时,都会自动带上这张卡,让服务器能认出你是谁。

我们来看一个官方实例:

class Cookies(BaseModel):
    session_id: str  # 必填,请求里必须有名为 session_id 的 Cookie
    fatebook_tracker: str | None = None  # 可选,没有则为 None
    googall_tracker: str | None = None # 可选,没有则为 None
​
# Annotated 的作用 把类型(Cookies)和元数据(Cookie())绑在一起,是 FastAPI 推荐的写法,
# 比旧式 cookies: Cookies = Cookie() 更清晰。
# 如果不指定参数来源,默认从查询参数里去获取。
@app.get("/cookies/")
async def read_cookies(cookies: Annotated[Cookies, Cookie()]):
    return cookies

我们测试下:Swagger UI 测试不了,官方文档也有说明。

所以我们用PostMan测试:

HTTP请求头部(Header)是一组包含请求信息的键值对,用来描述HTTP请求的各种属性和特征。

我们来看一个官方实例:

class CommonHeaders(BaseModel):
    hostname: str
    save_data: bool
    if_modified_since: str | None = None
    traceparent: str | None = None
    x_tag: list[str] = []
​
​
@app.get("/headers/")
async def read_headers(headers: Annotated[CommonHeaders, Header()]):
    return headers

然后打开浏览器访问 http://127.0.0.1:8000/docs,进行测试

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐