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

FastAPI 安装使用教程

一、FastAPI 简介

FastAPI 是一个现代、快速(高性能)的 Web 框架,基于 Python 3.7+ 和标准类型提示构建,广泛应用于 API 服务开发。它使用 Pydantic 进行数据验证,集成自动生成 OpenAPI 和文档 UI,非常适合构建高性能的 Web 服务与微服务架构。


二、环境准备

2.1 安装 Python 3.7+

FastAPI 要求 Python >= 3.7,可以通过以下命令验证:

python --version
# 或
python3 --version

2.2 创建虚拟环境(推荐)

python -m venv venv
source venv/bin/activate  # macOS/Linux
venv\Scripts\activate   # Windows

三、安装 FastAPI 与 Uvicorn

使用 pip 安装:

pip install fastapi
pip install "uvicorn[standard]"

其中,Uvicorn 是 FastAPI 推荐的高性能 ASGI 服务器。


四、第一个 FastAPI 示例

创建 main.py 文件:

from fastapi import FastAPIapp = FastAPI()@app.get("/")
def read_root():return {"message": "Hello, FastAPI!"}@app.get("/items/{item_id}")
def read_item(item_id: int, q: str = None):return {"item_id": item_id, "q": q}

五、运行项目

在终端中运行:

uvicorn main:app --reload

访问:

  • 接口地址:http://127.0.0.1:8000
  • Swagger UI:http://127.0.0.1:8000/docs
  • Redoc 文档:http://127.0.0.1:8000/redoc

六、FastAPI 常用特性

6.1 路由参数与类型校验

@app.get("/user/{user_id}")
def get_user(user_id: int):return {"user_id": user_id}

6.2 请求体参数(使用 Pydantic)

from pydantic import BaseModelclass Item(BaseModel):name: strprice: float@app.post("/items/")
def create_item(item: Item):return item

6.3 异步支持

@app.get("/async")
async def async_endpoint():return {"message": "This is async"}

七、项目结构推荐

app/
├── main.py
├── routers/
│   └── user.py
├── models/
├── schemas/
├── services/
└── utils/

八、使用依赖注入(Depends)

from fastapi import Dependsdef common_params(q: str = None):return {"q": q}@app.get("/search/")
def search(params: dict = Depends(common_params)):return params

九、部署建议

  • 使用 Uvicorn + Gunicorn 或 Hypercorn 部署
  • 推荐部署在 Linux + Nginx 上
  • 可通过 Docker 容器化部署

十、常见问题

Q1: Swagger 页面打不开?

检查是否运行时未指定 --reload 或检查路径 /docs 是否拼写正确。

Q2: 中文乱码?

设置响应编码:

from fastapi.responses import JSONResponse@app.get("/zh")
def read_zh():return JSONResponse(content={"message": "你好,FastAPI!"}, media_type="application/json; charset=utf-8")

十一、学习资源推荐

  • FastAPI 官方文档
  • FastAPI 中文文档
  • Pydantic 官方文档
  • [实战视频教程 Bilibili 搜索 FastAPI]

本文由“小奇Java面试”原创发布,转载请注明出处。

可以搜索【小奇JAVA面试】第一时间阅读,回复【资料】获取福利,回复【项目】获取项目源码,回复【简历模板】获取简历模板,回复【学习路线图】获取学习路线图。

在这里插入图片描述

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

相关文章:

  • 通用编码器芯片 L1527产品介绍,低重码率,高安全性433解码芯片
  • 激活向量是什么
  • LCS4110R安全芯片防抄板原理
  • HTML初学者第二天
  • Spring-解决IDEA中无法创建JDK17一下的SpringBoot项目
  • 【计算机网络】补充
  • 04.Vue自定义组件制作详细指南
  • 【数据结构】排序算法:冒泡与快速
  • docker-compose编排saleor
  • 基于Apache POI实现百度POI分类快速导入PostgreSQL数据库实战
  • 1-RuoYi框架配置与启动
  • BlenderFBXExporter 导出fbx被修改问题
  • R Studio开发中记录
  • [IMX][UBoot] 08.启动流程 (4) - 平台后期初始化阶段 - board_init_r
  • 深入解析外观模式(Facade Pattern):简化复杂系统的优雅设计
  • 如何系统性评估运维自动化覆盖率:方法与关注重点
  • 拐点的可导性的图像区别
  • 回顾JAVA中的锁机制
  • 解决在Pom文件中写入依赖坐标后, 刷新Maven但是多次尝试都下载不下来
  • Maven工具学习使用(十三)——Maven Wrapper命令解析与使用
  • 告别 ifconfig:openEuler 网络配置的现代化之路
  • Linux 启动过程流程图--ARM版
  • 高速公路闲置土地资源化利用:广西浦北互通3MW分布式光伏监控实践
  • STEP 7-MicroWIN SMART软件安装及运行故障全方位解决
  • 【51单片机单595点阵8按键调节速度方向花样】2022-6-18
  • 使用OpenCV训练自有模型的实践
  • 飞算科技:以自主技术创新推动行业数字化升级
  • Java学习第五部分——API部分
  • 【DICOM后处理】qt+vs 实现DICOM数据四视图显示
  • LeetCode--39.组合总和