环境准备
# 创建项目目录
mkdir my_fastapi_project
cd my_fastapi_project# 创建和激活虚拟环境
python -m venv venv
.\venv\Scripts\activate
安装必要的包
pip install fastapi uvicorn python-dotenv
创建项目基本结构
my_fastapi_project/
│ .env # 环境变量
│ main.py # 主程序入口
│ requirements.txt # 依赖管理
│
├─app
│ │ __init__.py
│ │ config.py # 配置文件
│ │
│ ├─api
│ │ │ __init__.py
│ │ │ endpoints.py # API路由
│ │
│ ├─core
│ │ │ __init__.py
│ │ │ models.py # 数据模型
│ │
│ └─utils
│ │ __init__.py
│ │ helpers.py # 工具函数
│
└─tests # 测试文件夹│ __init__.py│ test_api.py
main.py基本内容
from fastapi import FastAPI
from app.api.endpoints import routerapp = FastAPI(title="My FastAPI Project",description="This is a FastAPI project template",version="1.0.0"
)app.include_router(router, prefix="/api")@app.get("/")
async def root():return {"message": "Welcome to FastAPI!"}if __name__ == "__main__":import uvicornuvicorn.run(app, host="127.0.0.1", port=8000)
app/api/endpoints.py 基本内容:
from fastapi import APIRouterrouter = APIRouter()@router.get("/items/")
async def read_items():return [{"name": "Item 1"}, {"name": "Item 2"}]@router.post("/items/")
async def create_item(name: str):return {"name": name}
创建requirements.txt
pip freeze > requirements.txt
将当前 Python 环境中安装的所有包及其版本信息导出到 requirements.txt 文件中。
pip freeze
会列出当前环境中安装的所有 Python 包及其确切版本
>
是重定向符号,将输出重定向到文件
requirements.txt
是保存这些信息的目标文件
这个文件的主要用途是:
- 项目依赖管理:记录项目所需的所有依赖包
- 环境重现:其他开发者可以使用
pip install -r requirements.txt
命令快速安装相同版本的依赖- 版本控制:确保团队成员使用相同版本的包
- 部署支持:在部署环境中快速安装所需依赖
实际项目中的最佳实践:
- 使用虚拟环境来隔离项目依赖
- 定期更新 requirements.txt
- 只包含项目真正需要的依赖
创建 .env 文件
DEBUG=True
API_V1_STR=/api/v1
PROJECT_NAME=MyFastAPI
创建 app/config.py
import os
from dotenv import load_dotenvload_dotenv()class Settings:DEBUG: bool = os.getenv("DEBUG", False)API_V1_STR: str = os.getenv("API_V1_STR", "/api/v1")PROJECT_NAME: str = os.getenv("PROJECT_NAME", "FastAPI")settings = Settings()
运行项目
# 在项目根目录下运行
uvicorn main:app --reload
访问项目:
- API 文档:http://127.0.0.1:8000/docs
- 交互式 API 文档:http://127.0.0.1:8000/redoc
- 根路径:http://127.0.0.1:8000