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

fastapi框架

fastapi框架

fastapi,一个用于构建 API 的现代、快速(高性能)的异步web框架。

fastapi是建立在StarlettePydantic基础上的

  • Pydantic是一个基于Python类型提示来定义数据验证、序列化和文档的库。
  • Starlette是一种轻量级的ASGI框架/工具包,是构建高性能Asyncio服务的理性选择。
  • 快速:可与 NodeJS 和 Go 比肩的极高性能(归功于 StarlettePydantic),是最快的 Python web 框架之一。
  • 高效编码:提高功能开发速度约 200% 至 300%。
  • 更少bug:减少约 40% 的人为(开发者)导致错误。
  • 智能:极佳的编辑器支持。处处皆可自动补全,减少调试时间。
  • 简单:设计的易于使用和学习,阅读文档的时间更短。
  • 简短:使代码重复最小化。通过不同的参数声明实现丰富功能。
  • 健壮:生产可用级别的代码。还有自动生成的交互式文档

依赖:Python 3.6 及更高版本,FastAPI 站在以下巨人的肩膀之上

quick start

requirements.txt

annotated-types0.6.0
anyio
4.2.0
click8.1.7
exceptiongroup
1.2.0
fastapi0.63.0
h11
0.14.0
idna3.6
pydantic
1.7.3
pydantic_core2.14.6
sniffio
1.3.0
SQLAlchemy1.3.22
starlette
0.13.6
typing_extensions4.9.0
uvicorn
0.18.1

main.py

from fastapi import FastAPI  # FastAPI 是一个为你的 API 提供了所有功能的 Python 类。app = FastAPI()  # 这个实例将是创建你所有 API 的主要交互对象。这个 app 同样在如下命令中被 uvicorn 所引用@app.get("/")
async def root():return {"message": "Hello yuan"}

通过以下命令运行服务器:

uvicorn main:app --reload

INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO: Started reloader process [73408]
INFO: Started server process [73408]
INFO: Waiting for application startup
INFO: Application startup complete

也可以直接运行:

if __name__ == '__main__':import uvicornuvicorn.run("main:app", host="127.0.0.1", port=8080, debug=True, reload=True)

(1)导入 FastAPI。
(2)创建一个 app 实例。
(3)编写一个路径操作装饰器(如 @app.get(“/”))。
(4)编写一个路径操作函数(如上面的 def root(): …)
(5)定义返回值
(6)运行开发服务器(如 uvicorn main:app --reload)

此外,fastapi有着非常棒的交互式 API 文档,这一点很吸引人。

跳转到 http://127.0.0.1:8000/docs。你将会看到自动生成的交互式 API 文档。

http://www.lryc.cn/news/285448.html

相关文章:

  • 2023 年顶级前端工具
  • html 会跳舞的时间动画特效
  • 微信AR实现识别手部展示glb模型
  • MYSQL自连接、子查询
  • docker搭建hbase 全部流程(包含本地API访问)
  • Mybatis之关联
  • Labview实现用户界面切换的几种方式---通过VI间相互调用
  • 点云从入门到精通技术详解100篇-基于点云和图像融合的智能驾驶目标检测(中)
  • Apache-iotdb物联网数据库的安装及使用
  • 项目管理流程
  • 0004.电脑开机提示按F1
  • 中国电子学会2022年12月份青少年软件编程Scratch图形化等级考试试卷一级真题(含答案)
  • C语言第二弹---C语言基本概念(下)
  • Java 基础面试题 String(一)
  • QT中QApplication对象有且只有一个
  • HTML CSS 发光字头特效
  • 4.postman批量运行及json、cvs文件运行
  • Superset二次开发之集成链路追踪TraceID技术
  • 商品详情APP端原数据淘宝数据采集API接口代码接入示例
  • 企业官网搭建:打造专业形象的关键步骤
  • Vue2移动端项目使用$router.go(-1)不生效问题记录
  • ChatGPT与文心一言:AI助手之巅的对决
  • 前端实现贪吃蛇功能
  • 文件操作(上)
  • 用CHAT写年终总结
  • day01 深度学习介绍
  • k8s 部署 Nginx 并代理到tomcat
  • 医学图像的数据增强技术 --- 切割-拼接数据增强(CS-DA)
  • git克隆/拉取报错过早的文件结束符(EOF)的原因及解决
  • 【ARM 嵌入式 编译系列 2.5 -- GCC 编译参数学习 --specs=nano.specs选项 】