Ajouter les fichiers de configuration pour VS Code et le fichier .gitignore
This commit is contained in:
commit
26020ecbc1
5 changed files with 426 additions and 0 deletions
73
models.py
Normal file
73
models.py
Normal file
|
@ -0,0 +1,73 @@
|
|||
from sqlmodel import Field, Relationship, SQLModel, Session, create_engine
|
||||
|
||||
|
||||
class TeamBase(SQLModel):
|
||||
name: str = Field(index=True)
|
||||
headquarters: str
|
||||
|
||||
|
||||
class Team(TeamBase, table=True):
|
||||
id: int | None = Field(default=None, primary_key=True)
|
||||
heroes: list["Hero"] = Relationship(back_populates="team")
|
||||
|
||||
|
||||
class TeamCreate(TeamBase):
|
||||
pass
|
||||
|
||||
|
||||
class TeamRead(TeamBase):
|
||||
name: str | None = None
|
||||
headquarters: str | None = None
|
||||
|
||||
|
||||
class HeroBase(SQLModel):
|
||||
name: str = Field(index=True)
|
||||
secret_name: str
|
||||
age: int | None = Field(index=True, default=None)
|
||||
team_id: int | None = Field(default=None, foreign_key="team.id")
|
||||
|
||||
|
||||
class Hero(HeroBase, table=True):
|
||||
id: int | None = Field(default=None, primary_key=True)
|
||||
hashed_password: str = Field()
|
||||
team: Team | None = Relationship(back_populates="heroes")
|
||||
|
||||
|
||||
class HeroCreate(HeroBase):
|
||||
password: str
|
||||
|
||||
|
||||
class HeroRead(HeroBase):
|
||||
id: int
|
||||
|
||||
|
||||
class HeroUpdate(SQLModel):
|
||||
name: str | None = None
|
||||
secret_name: str | None = None
|
||||
age: int | None = None
|
||||
password: str | None = None
|
||||
team_id: int | None = None
|
||||
|
||||
|
||||
class TeamReadWithHeroes(TeamRead):
|
||||
heroes: list[HeroRead] = []
|
||||
|
||||
|
||||
class HeroReadWithTeam(HeroRead):
|
||||
team: TeamRead | None = None
|
||||
|
||||
|
||||
SQLITE_FILE_NAME = "database.db"
|
||||
DATABASE_URL = f"sqlite:///{SQLITE_FILE_NAME}"
|
||||
|
||||
connect_args = {"check_same_thread": False}
|
||||
engine = create_engine(DATABASE_URL, echo=True, connect_args=connect_args)
|
||||
|
||||
|
||||
def create_db_and_tables():
|
||||
SQLModel.metadata.create_all(engine)
|
||||
|
||||
|
||||
def get_session():
|
||||
with Session(engine) as session:
|
||||
yield session
|
Loading…
Add table
Add a link
Reference in a new issue