.
├──
db.py├──
main.py├── models
│ ├──
__init__.py│ ├── __pycache__
│ │ ├── __init__.cpython-311.pyc
│ │ ├── teams.cpython-311.pyc
│ │ └── users.cpython-311.pyc
│ ├──
teams.py│ └──
users.py├── __pycache__
│ ├── db.cpython-311.pyc
│ └── main.cpython-311.pyc
├── pyproject.toml
├──
README.md├── router
│ ├──
__init__.py│ ├── __pycache__
│ │ ├── __init__.cpython-311.pyc
│ │ ├── teams.cpython-311.pyc
│ │ └── users.cpython-311.pyc
│ ├──
teams.py│ └──
users.py├── test.db
└── uv.lock
db.pyfrom fastapi import Depends
from sqlmodel import Session
from typing import Generator
from sqlmodel import SQLModel, create_engine
DATABASE_URL = "sqlite:///./test.db"
engine = create_engine(DATABASE_URL, echo=True)
def get_session() -> Generator[Session, None, None]:
with Session(engine) as session:
yield session
SessiOnDep= Depends(get_session)
def create_db_and_tables():
SQLModel.metadata.create_all(engine)
teams.pyfrom sqlmodel import select
from sqlmodel import Session
from db import SessionDep
from models.teams import (
Team,
TeamPublicWithUser,
)
from fastapi import APIRouter
router = APIRouter(prefix="/teams", tags=["团队管理"])
@
router.get("/{id}", summary="获取团队详情", response_model=TeamPublicWithUser)
async def get_team_api(id: int, db: Session = SessionDep, ):
team = db.exec(select(Team).where(
Team.id == id)).first()
return team