zoukankan      html  css  js  c++  java
  • FastAPI 基础学习(十二) Cookie操作

    作者:麦克煎蛋   出处:https://www.cnblogs.com/mazhiyong/ 转载请保留这段声明,谢谢!

    读取Cookie信息

    基于Query、Path等模块同样的模式,我们可以利用Cookie模块来声明cookies。Cookie是Query、Path的姐妹类,它们都继承自Param类。

    同样我们也可以便捷的定义Cookie模块的参数信息。

    1、导入模块

    from fastapi import Cookie

    2、添加参数信息

    参数信息的结构与Query、Path等模块完全相同。

    ads_id: str = Cookie(None)

    完整示例:

    from fastapi import Cookie, FastAPI
    
    app = FastAPI()
    
    
    @app.get("/items/")
    async def read_items(*, ads_id: str = Cookie(None)):
        return {"ads_id": ads_id}

     

    返回Cookie信息

    我们可以在Response中返回Cookie信息给终端。

    1、使用Response参数

    我们可以在路径操作函数中声明Response参数,然后给这个临时的Response对象设置cookie信息。

    FastAPI通过这个临时的Response对象解析出cookie信息,然后放入到最终返回的Response对象中。

    我们也可以在依赖项中使用Response参数,然后设置cookie信息。

    from fastapi import FastAPI, Response
    
    app = FastAPI()
    
    
    @app.post("/cookie-and-object/")
    def create_cookie(response: Response):
        response.set_cookie(key="fakesession", value="fake-cookie-session-value")
        return {"message": "Come to the dark side, we have cookies"}

    2、直接返回Response

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

    from fastapi import FastAPI
    from fastapi.responses import JSONResponse
    
    app = FastAPI()
    
    
    @app.post("/cookie/")
    def create_cookie():
        content = {"message": "Come to the dark side, we have cookies"}
        response = JSONResponse(content=content)
        response.set_cookie(key="fakesession", value="fake-cookie-session-value")
        return response
    
    
  • 相关阅读:
    Docker系列三:Docker容器管理
    Docker系列一:Docker基本概念及指令介绍
    MySQL数据库“十宗罪”(十大经典错误案例)
    用数据驱动渠道推广(下:数据篇)
    用数据驱动渠道推广(上:工具篇)
    日留存、周留存、月留存,究竟怎样才能让更多的用户留下来?
    MySQL中的联合索引学习教程
    VC++NMAKE
    一元三次方程求根公式
    一元四次方程求根公式
  • 原文地址:https://www.cnblogs.com/mazhiyong/p/12930555.html
Copyright © 2011-2022 走看看