FastAPI-17:详解Cookie,获取Cookie


FastAPI-17:详解Cookie,获取Cookie

FastAPI提供的Cookie

Cookie是Path和Query的“姐妹”类。它也继承自相同的通用类Param类。注意:从fastapi导入Query、Param、Cookie等时,这些实际上返回的是特殊的函数

手动给浏览器设置Cookie

打开浏览器的控制台,输入:document.cookie="name=test_cookie"

查看应用程序

读取Cookie

@router.get("/items/")
async def read_items(
        name: Optional[str] = Cookie(None)
) -> dict:
    return {"name": name}

重点:函数参数的命名很重要,需要和应用程序中Cookie的名称对应上才能拿到Cookie。

浏览器访问该接口

因为上面手动在浏览器添加的Cookie,所以只能从浏览器测试该接口。

在一个正常的网站中,登录成功或者鉴权成功,服务器返回的响应会带着Set-Cookie,表示浏览器需要设置的一些Cookie。那么FastAPI是如何返回带有Set-Cookie的响应的呢?

from fastapi.response import JSONResponse
@router.get("/cookie")
def cookie():
    content = {"message": "cookie"}
    response = JSONResponse(content=content, status_code=200)
    response.set_cookie(key='username', value='admin')
    return response
# 这里会用到FastAPI提供的响应模式,后面会详解,当前先做个了解方便演示

文章作者: 刘宇亭
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 刘宇亭 !
评论
  目录