1.FastAPI简介与安装

文章目录

为什么选择FastAPI?

  • python web开发:
    • Django: 适合大型复杂项目;
    • Flask:适合灵活开发,搭建小型项目;
    • FastAPI: 兼具开发快捷和高性能的特点;
      • 编译时检查数据类型;
      • 支持异步;

FastAPI支持的功能

  • 自动生成API文档:依据类型提示和OpenAPI规范,自动生成详细API文档,还提供Swagger UI和ReDoc可视化界面,方便测试与对接。

  • 数据验证与序列化:内置数据验证机制,按类型提示验证输入数据,自动返回错误信息。还能轻松实现数据的序列化和反序列化。

  • 依赖注入:支持依赖注入模式,分离通用功能,提高代码复用性和可维护性,避免重复代码。

  • 支持多种请求方法:全面支持GET、POST、PUT、DELETE等HTTP请求方法,适配各种业务场景。

FastAPI的安装

python 复制代码
# fastapi项目是一个Web应用
pip install fastapi
# UVicorn 是一个支持 ASGI 的 Web 服务器,它能够运行符合 ASGI 规范的 Python Web 应用程序,例如 FastAPI 应用。
pip install uvicorn 

第一个FastAPI应用

python 复制代码
from fastapi import FastAPI

# 创建一个fastapi实例
app = FastAPI()

@app.get("/")
def root():
	# 返回一个包含信息的字典
    return {"message": "欢迎来到FastAPI的世界"}

运行应用

  • 路径区分

    • 当工作目录跟main.py文件路径一致时,运行以下命令

      python 复制代码
      uvicorn main:app --reload
    • 当工作目录跟main.py文件路径不一致时,main:app中的main要替换成从当前工作目录到main.py的相对路径,如下:

      python 复制代码
      # 代表工作目录是在app01文件夹那一层,然后main.py在文件夹app01文件夹里面注意中间是用"."连接,类似与包的导入
      uvicorn app01.main:app  --reload
  • uvicorn:是我们之前安装的ASGI服务器

  • main:app:表示我们要运行"main.py"文件中的app实例。

  • reload:它会让Uvicorn在代码发生变化时自动重新加载应用,

相关推荐
笑鸿的学习笔记16 分钟前
C++笔记之SIMD与SSE指令集
开发语言·c++·笔记
全栈练习生30 分钟前
大模型原理之 KV Cache
python·ai
福兮说35 分钟前
URL 编码的七个坑:c++ 传到后端变空格、%25 套娃、截断 emoji 直接报错
开发语言·前端·javascript·node.js·url
天赐范式42 分钟前
天赐范式第183天:让选择开始生效——育种者方程与选择生效条件
python·数字生命·天赐范式·动态运行时·育种者方程·选择压力·遗传力
小的时候可菜了1 小时前
JS 异步的本质:从单线程到 thenable(一条进化链)
开发语言·前端·javascript
可乐鸡翅yeah_1 小时前
hls.js 配置 loadStartPosition,点播起始播放位置踩坑
开发语言·javascript·网络协议·ecmascript·m3u8在线
benchmark_cc1 小时前
批量行情返回后,怎样把请求失败的股票和正常数据分开?
python·数据分析·pandas·量化交易·股票数据·quantdash
en.en..1 小时前
Linux 进程退出exit(函数)
java·开发语言·算法
Cx330❀1 小时前
【Qt 进阶指南】详解 Qt 常用标准对话框与主窗口组件架构
开发语言·qt·ui·性能优化·架构·图形渲染
Light Gao1 小时前
Encoder 与 Decoder 详解:从 Embedding 到 Seq2Seq 的完整数据流
java·开发语言·embedding