001 -【FastAPI 入门教程】 FastAPI Helloword

FastAPI 入门教程

FastAPI 是什么

FastAPI 是一个现代、高性能的 Python Web 框架,用于构建 API。基于 Python 3.6+ 的类型提示,自带数据校验、交互式文档(Swagger/OpenAPI)和异步支持。

安装

bash 复制代码
pip install fastapi uvicorn
  • fastapi:框架本身
  • uvicorn:ASGI 服务器,用来运行 FastAPI 应用

Hello World

创建 main.py:

python 复制代码
from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"Hello": "World"}

运行

bash 复制代码
uvicorn main:app --reload

命令格式:<文件名>:<变量名>

  • main → 文件名 main.py(不含 .py 后缀)
  • app → 文件中的 FastAPI 实例变量名(app = FastAPI())
  • --reload → 代码改动后自动重启

访问 http://127.0.0.1:8000/ ,返回 {"Hello":"World"}

路径参数和查询参数

python 复制代码
@app.get("/items/{item_id}")
def read_item(item_id: int, q: str = None):
    return {"item_id": item_id, "q": q}
  • item_id: int → 路径参数,自动类型转换
  • q: str = None → 查询参数,可选

访问 http://127.0.0.1:8000/items/42?q=test

自带 API 文档

启动服务后访问:

项目结构

没有强制要求,最简单就是一个文件:

复制代码
project/
  main.py

实际项目常见结构:

复制代码
project/
  app/
    __init__.py
    main.py       # app = FastAPI() 定义
    routers/      # 路由
    models/       # 数据模型
    services/     # 业务逻辑

这只是组织代码的习惯,不是框架要求。

常见问题

报错 Could not import module "app"

文件名和变量名写反了。假设文件是 main.py,变量是 app:

bash 复制代码
# 错误
uvicorn app:main --reload

# 正确
uvicorn main:app --reload
相关推荐
FungLeo3 小时前
成为全栈·React 管理后台篇·总复盘:从“接口能调通”到“后台值得使用”
前端·react.js·前端框架·项目复盘·成为全栈
Csvn4 小时前
并发模式:让渲染学会排队、插队和让路
前端
可乐鸡翅yeah_4 小时前
新手梳理:M3U8 线上问题,哪些是前端锅,哪些是后端锅
前端·ios·音视频·实时音视频·m3u8·音视频在线播放
Flynt4 小时前
Linear 用 1000 个 PR 换掉 styled-components,我写了 200 个按钮,把这笔账复现了一遍
前端·css·preact
风早爽太4 小时前
用 ‌Render‌ 快速部署网站和常见问题解决
python·fastapi
JavaGuide5 小时前
NVIDIA 又开源了!这次给 AI Agent 加上权限管控
前端·后端
excel6 小时前
prisma 如何处理数据库竞态
前端·数据库·后端
莪_幻尘7 小时前
Skill 体检:30 个 Skill 全凭感觉?体检器先自曝了 8 个“假 0 分
前端·人工智能·llm
风骏时光牛马7 小时前
AI模型综合能力评测:性能、指令遵循与多场景实测对比
前端
Frag0ut7 小时前
Chrome与Chromium内核浏览器在Windows 11上的新特性全景解析
前端·chrome·windows·web安全·chromium·gemini ai·playready drm