首页 > 其他分享 >FastAPI学习-12. 请求Cookie 参数

FastAPI学习-12. 请求Cookie 参数

时间:2023-10-25 11:02:31浏览次数:48  
标签:12 name FastAPI 参数 Path Cookie Query

前言

你可以像定义 Query 参数和 Path 参数一样来定义 Cookie 参数。

声明 Cookie 参数

首先,导入 Cookie:

from fastapi import Cookie, FastAPI

声明 Cookie 参数的结构与声明 Query 参数和 Path 参数时相同。

第一个值是参数的默认值,同时也可以传递所有验证参数或注释参数,来校验参数:

from typing import Union

from fastapi import Cookie, FastAPI
from typing_extensions import Annotated

app = FastAPI()


@app.get("/items/")
async def read_items(ads_id: Annotated[Union[str, None], Cookie()] = None):
    return {"ads_id": ads_id}

在读取客户端中Cookie时需要注意,代码中cookie的变量名称必须和客户端cookie中的key值一致!!!

使用示例

@app.get("/demo")  
async def demo(  
        name: Union[str, None] = Cookie()  
):  
    print(f"name : {name}")  
    return {  
        "message": "Hello demo!",  
        "data": {"name": name}  
    }


Cookie 、Path 、Query是兄弟类,它们都继承自公共的 Param 类

但请记住,当你从 fastapi 导入的 QueryPathCookie 或其他参数声明函数,这些实际上是返回特殊类的函数。

你需要使用 Cookie 来声明 cookie 参数,否则参数将会被解释为查询参数。

总结

使用 Cookie 声明 cookie 参数,使用方式与 Query 和 Path 类似。



标签:12,name,FastAPI,参数,Path,Cookie,Query
From: https://blog.51cto.com/u_15249893/8015595

相关文章

  • FastAPI学习-10. 路由管理APIRouter
    前言在Flask中,我们一般用蓝图Blueprint来处理多个模块的视图,在fastapi中也有类似的功能通过APIRouter来管理。路由管理APIRouter如果你正在开发一个应用程序或WebAPI,很少会将所有的内容都放在一个文件中。FastAPI提供了一个方便的工具,可以在保持所有灵活性的同时构建你......
  • FastAPI学习-11. 请求body - 嵌套模型
    前言使用 FastAPI,你可以定义、校验、记录文档并使用任意深度嵌套的模型(归功于Pydantic)List字段你可以将一个属性定义为拥有子元素的类型。例如Python list:fromtypingimportUnionfromfastapiimportFastAPIfrompydanticimportBaseModelapp=FastAPI()classIte......
  • Java 基础 05~ 12
    Java基础05~121.Java类型转换inti=128;byteb=(byte)i;// 格式System.out.println(i);//128System.out.println(b);//-128内存溢出​ PS:注意转换的等级,从低位往高位转没问题,从高位往低位转可能内存溢出2.变量、常量、作用域inta=1;Stringn......
  • fastapi + strawberry(graphql)
    Strawberryhttps://fastapi.tiangolo.com/zh/how-to/graphql/GraphQLwithStrawberry¶IfyouneedorwanttoworkwithGraphQL,StrawberryistherecommendedlibraryasithasthedesignclosesttoFastAPI'sdesign,it'sallbasedontypeannotat......
  • Oracle特殊恢复原理与实战_12 Oracle坏块处理
       http://dbase.cc/2018/05/22/oracle/Oracle%E7%89%B9%E6%AE%8A%E6%81%A2%E5%A4%8D%E5%8E%9F%E7%90%86%E4%B8%8E%E5%AE%9E%E6%88%98-%E8%AF%BE%E7%A8%8B%E5%AD%A6%E4%B9%A0/12_Oracle%E7%89%B9%E6%AE%8A%E6%81%A2%E5%A4%8D%E5%85%A5%E9%97%A8/......
  • 文心一言 VS 讯飞星火 VS chatgpt (120)-- 算法导论10.3 5题
    五、用go语言,设L是一个长度为n的双向链表,存储于长度为m的数组key、prev和next中。假设这些数组由维护双链自由表F的两个过程ALLOCATE-OBJECT和FREE-OBJECT进行管理。又假设m个元素中,恰有n个元素在链表L上,m-n个在自由表上。给定链表L和自由表F,试写出一个过程......
  • [题解]CF1223F Stack Exterminable Arrays
    CCF出的原题观摩一下。思路首先可以用一个Trie来维护。在这里对本文中的一些变量做一下说明。\(p\)表示当前维护的Trie中,指向的元素编号。\(t_i\)表示在Trie中编号为\(i\)的元素在原序列中的值。\(f_i\)表示在Trie中编号为\(i\)的元素在Trie中的父......
  • 【全志R128开发经验分享】启用USB ADB以及无线ADB配置方法
    首先在FreeRTOS的环境下,选择r128_c906_pro:sourceenvsetup.shlunch_rtosr128s2_pro_c906USBADB的配置比较常规,注意以下几个驱动的勾选usbdevice驱动adbgadget驱动adbd应用运行menuconfig,选择对应的驱动以及软件包:mrtos_menuconfig配置好的图片如下图所示当选......
  • 基于mutation的自定义指令以监听用户使用f12修改dom
    昨天写了功能后,就又封了一个指令,可以直接应用于ui框架的input组件上贴贴:preventChange/index.jsexportconstpreventChange={inserted(el,binding){constelTag=el.tagName.toLowerCase();//获取当前dom下类型为password的input标签constpasswordI......
  • 1129.热浪
    最短路模板题#include<stdio.h>#include<stdlib.h>#include<queue>#include<algorithm>#include<vector>#include<cstring>#defineR(x)x=read()usingnamespacestd;typedefpair<int,int>PII;constintN=251......