以下是一个使用 FastAPI 搭建的简单 Web 应用案例,实现了一个基本的待办事项列表应用:
项目结构
fastapi-todo-app/
├── main.py
├── models.py
├── schemas.py
├── database.py
└── .env
代码说明
main.py
这是 FastAPI 应用的主文件,负责定义路由、启动服务器和处理请求.
from fastapi import FastAPI, HTTPException, Depends
from sqlalchemy.orm import Session
from . import models, schemas, database
from .database import SessionLocal, engine
models.Base.metadata.create_all(bind=engine)
app = FastAPI()
def get_db():
db = SessionLocal()
try:
yield db
finally:
db.close()
@app.get("/")
def read_root():
return {
"message": "Hello, FastAPI!"}
@app.post("/todos/", response_model=schemas.Todo)
def create_todo(todo: schemas.TodoCreate, db: Session = Depends(get_db)):
db_todo = models.Todo