当前位置: 首页 > 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.lryc.cn/news/579206.html

相关文章:

  • 人脸活体识别3:C/C++实现人脸眨眼 张嘴 点头 摇头识别(可实时检测)
  • 回顾JAVA中的锁机制
  • 重塑智能体决策路径:深入理解 ReAct 框架
  • WPF路由事件:冒泡、隧道与直接全解析
  • 嵌入式软件面经(四)Q:请说明在 ILP32、LP64 与 LLP64 三种数据模型下,常见基本类型及指针的 sizeof 值差异,并简要解释其原因
  • 软件开发早期阶段,使用存储过程的优势探讨:敏捷开发下的利器
  • 【C++】--入门
  • 欧拉角、四元数和旋转矩阵的变换关系以及无人机的坐标变换
  • 如何在Excel中每隔几行取一行
  • sqlmap学习笔记ing(3.[MoeCTF 2022]Sqlmap_boy,cookie的作用)
  • LeetCode Hot 100 滑动窗口 【Java和Golang解法】
  • 鸿蒙开发技巧---去除字符串两端的空格
  • AI大模型如何重塑软件开发流程?从自动化革命到人机共生范式
  • 怎样理解:source ~/.bash_profile
  • 深入Flink核心概念:解锁大数据流处理的奥秘
  • SAP WM LT10 TO创建增强
  • Android Auto即将带来变革
  • Agno(一)
  • 机器学习在智能制造业中的应用:质量检测与设备故障预测
  • Vue + RuoYi 前后端分离入门手册
  • Ubuntu云服务器上部署发布Vite项目
  • Redis基础(1):NoSQL认识
  • 端到端自动驾驶系统关键技术
  • 开发自动驾驶系统所需工具
  • 2025美国券商交易系统综合开发及解决方案报告:低延迟、全球化与代币化技术赋能机构业务新生态
  • “山河”应急指挥决策AI智能体 - 全生命周期构建实施说明
  • 轻松上手:使用Nginx实现高效负载均衡
  • python中的pydantic是什么?
  • 逆向入门(25、26)程序逆向篇-KeygenMe,MexeliteCRK1
  • Linux基本命令篇 —— alias命令