当前位置: 首页 > news >正文

FastAPI学习(一)

Python的异步

Concurrency和Parallel适用的场景不同,Concurrency适合IO-bound任务,Parallel适合CPU-bound任务。

留意Python中async和await的用法,在IO-bound操作中正确使用,提高效率。

FastAPI对Concurrency和Parallel都进行了比较好的使用。

环境变量

环境变量是将一些不想打包到项目中的配置信息进行持久化存储的好位置,Python程序可以方便进行读,不能进行写。

可以学习一下"twelve-factor"理论,对项目进行优化。

FastAPI入门

运行项目的方法:

fastapi dev main.py

FastAPI使用OpenAPI标准的schema来规范API

写最简单的项目的步骤:

  1. from fastapi import FastAPI
  2. 创建实例 app = FastAPI()
  3. 设置operation和path @app.get("/")
  4. 写函数

传参数

把参数传到函数里面:

@app.get("/items/{item_id}")
async def read_item(item_id: int):return {"item_id": item_id}

如上所示,当函数参数中声明了变量类型时,FastAPI会帮我们自动转换类型。

此外,在匹配path时,代码中写在前面的模式会被优先匹配到,所以要把前缀相同的固定path写在变量path之前,否则这个固定的词就会一直被当做变量来处理。比如:/items/me要放在/items/{name}之前。

还可以用Enum类来限定参数的选项范围。

可以通过@app.get("items/{file_path:path}")来传递path参数,被传递的参数必须要以/开头,最终,整个URL就会在items之后有双斜杠//。

除了path parameter之外,还有query parameter,在URL的末尾添加?name=1&class=2,直接在函数里接受这些参数即可。

收结果

from pydantic import BaseModel

自己创建一个BaseModel的子类,规定好数据格式,然后就可以返回这个格式。

http://www.dtcms.com/a/375090.html

相关文章:

  • 每日算法刷题Day66:9.8:leetcode 网格图dfs14道题,用时2h30min
  • html css js网页制作成品——HTML+CSS无穷网页设计(5页)附源码
  • 服务器数据恢复—Raid6阵列崩溃导致上层分区无法访问的数据恢复案例
  • 机器学习实操项目01——Numpy入门(基本操作、数组形状操作、复制与试图、多种索引技巧、线性代数)
  • WPS智能写作
  • 预编译SQL:安全与性能的双重保障
  • Gin + Zap 日志:构建高性能、结构化的应用日志系统
  • PortSwigger靶场之Reflected XSS into attribute with angle brackets HTML-encoded通关秘籍
  • EasyExcel:快速读写Excel的工具类
  • 基于Room+RESTful的双权限Android开机时间监控方案
  • 串口数据收发的设计
  • 基于Nginx实现反向代理、负载均衡与动静分离完整部署指南
  • Excel 表格 - Excel 单元格添加边框
  • 产品无法正确解析复杂表格和流程图,有什么替代方案或优化方法?
  • C++ -- 模板
  • C# ObjectListView实现树状文件夹浏览
  • 高级 RAG 技术原理和前沿进展
  • 42.Shell脚本判断和if语句及相关案例
  • Game Runtime Libraries Package 解决游戏运行的痛点困境
  • 《P3825 [NOI2017] 游戏》
  • 第三课、Cocos Creator 项目创建与目录结构详解
  • C#中的浅拷贝与深拷贝
  • docker 整理几个常用的指令
  • Git上有更新而本地无更新时的解决方案
  • Doc2X为一切AI文档服务的基础设施,将PDF转换为Word、HTML、LaTeX、Markdown等
  • k8s 内置的containerd配置阿里云个人镜像地址及认证
  • 新节点加入k8s集群命令查看
  • 在 PostgreSQL中查看有哪些用户
  • 【从零开始的大模型原理与实践教程】--第一章:NLP基础概念
  • 零侵入式对接美团核销接口的技术合作模式