ylei's recent timeline updates
ylei

ylei

V2EX member #670469, joined on 2024-01-09 16:21:59 +08:00
Today's activity rank 13789
ylei's recent replies
Nov 10, 2025
Replied to a topic by dylyft Python 小白求教个循环导入的问题
我 get 到问题了是 models/teams.py 和 models/users.py 相互引用

我觉得可以从两个方面入手
1. 需求上 users.py 里的表是否可以不依赖 teams
2. 存在外键的表独立出来 users_teams.py?
Nov 10, 2025
Replied to a topic by dylyft Python 小白求教个循环导入的问题
.
├── 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.py


from 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.py


from 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
代码 -》 AST -》 代码
About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5650 Online   Highest 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 16ms · UTC 08:34 · PVG 16:34 · LAX 01:34 · JFK 04:34
♥ Do have faith in what you're doing.