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

FastAPI学习-12. 请求Cookie 参数

时间:2023-09-13 20:57:46浏览次数:36  
标签: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}  
    }

![[Pasted image 20230913114007.png]]

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

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

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

总结

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

标签:12,name,FastAPI,参数,Path,Cookie,Query
From: https://www.cnblogs.com/yoyoketang/p/17700708.html

相关文章

  • 12 获取类运行时的结构
    packageannotate;importjava.io.File;importjava.lang.reflect.Constructor;importjava.lang.reflect.Field;importjava.lang.reflect.Method;publicclassTest12{publicstaticvoidmain(String[]args)throwsException{Classc1=Body.clas......
  • 9.12 每日总结
    今天满课,上午上了大型数据库应用技术,下午上了.net和软件开发案例分析;从中学到了一些知识,不过这周刚刚正式开课大家都刚刚退补选完成,第一节课的内容相对都不是那么多,但是依然很有价值;晚上抽出时间看了看springboot的相关知识,我决定花费一到两周的时间学习springboot的知识;今天的......
  • 9.12
    今天数据结构深入学了顺序和链表,发现我之前的链表一直少着一个头节点。晚上学了学新媒体用户分析,学会了几种调查方法。比如诱导性调查:你是否认为世界应该阻止日本排放核污水。先不论答案,你脑海中已经形成了日本污染全世界的印象。事实如此。我们确实应该抵制。......
  • macOS Monterey 12.6.9 (21G726) 正式版发布,ISO、IPSW、PKG 下载
    macOSMonterey12.6.9(21G726)正式版发布,ISO、IPSW、PKG下载本站下载的macOS软件包,既可以拖拽到Applications(应用程序)下直接安装,也可以制作启动U盘安装,或者在虚拟机中启动安装。另外也支持在Windows和Linux中创建可引导介质。2023年9月12日,Apple为macOS和......
  • macOS Monterey 12.6.9 (21G726) Boot ISO 原版可引导镜像
    macOSMonterey12.6.9(21G726)BootISO原版可引导镜像本站下载的macOS软件包,既可以拖拽到Applications(应用程序)下直接安装,也可以制作启动U盘安装,或者在虚拟机中启动安装。另外也支持在Windows和Linux中创建可引导介质。2023年9月12日,Apple为macOS和iOS等......
  • 9.13补9.12没保存。。。
     HTML(HyperTextMarkupLanguage):超文本标记语言超文本:超越了文本的限制,比普通文本更强大。除了文字信息,还可以定义图片、音频、视频等内容标记语言:由标签构成的语言 HTML标签都是预定义好的。例如:使用<a>展示超链接,使用<img>展示图片,<video>展示视频HTML代码直接在......
  • 在线问诊 Python、FastAPI、Neo4j — 创建症状节点
    目录参考创建药品节点。importloggingfromutils.neo4j_providerimportdriverlogging.root.setLevel(logging.INFO)#并生成CQLdefgenerate_cql()->str:cql="""CREATE(symptom1:Symptom{name:"膝盖疼"}),(symptom2......
  • BUG库(Maven)Failed to execute goal org.apache.maven.plugins:maven-surefire-plugi
    一.Maven打包失败1.场景-项目中打包执行测试类报错 Failedtoexecutegoalorg.apache.maven.plugins:maven-surefire-plugin:2.12.4:test二.解决方案1.idea工具跳过选择按钮2.在pom文件中添加插件<plugin><groupId>org.apache.maven.plugins</groupId><artifactI......
  • 【2023-09-12】突破机会
    20:00人皆弱点,有弱点才是真实的人性,因此应该宽待人性的弱点。                                                 ——蒙田近年听到最多的话题就是生意难做、失业和倒闭......
  • DC-DC升压变换器直流隔离升压模块电源5v12v24v48v转60v80v110v150v220v250v300v500v80
    特点 效率高达80%以上 1*2英寸标准封装 单电压输出 价格低 稳压输出 工作温度:-40℃~+85℃ 阻燃封装,满足UL94-V0要求 温度特性好 可直接焊在PCB上应用HRBW2~40W系列模块电源是一种DC-DC升压变换器。该模块电源的输入电压分为:4.5~9V、9~18V、及18~36V、36~72VDC标准(2......