Coverage for docs_src / advanced / uuid / tutorial002_py310.py: 100%
44 statements
« prev ^ index » next coverage.py v7.13.0, created at 2026-11-09 00:02 +0000
« prev ^ index » next coverage.py v7.13.0, created at 2026-11-09 00:02 +0000
1import uuid 1jklmnopqr
3from sqlmodel import Field, Session, SQLModel, create_engine 1jklmnopqr
6class Hero(SQLModel, table=True): 1jklmnopqr
7 id: uuid.UUID = Field(default_factory=uuid.uuid4, primary_key=True) 1jklmnopqr
8 name: str = Field(index=True) 1jklmnopqr
9 secret_name: str 1jklmnopqr
10 age: int | None = Field(default=None, index=True) 1jklmnopqr
13sqlite_file_name = "database.db" 1jklmnopqr
14sqlite_url = f"sqlite:///{sqlite_file_name}" 1jklmnopqr
16engine = create_engine(sqlite_url, echo=True) 1jklmnopqr
19def create_db_and_tables(): 1jklmnopqr
20 SQLModel.metadata.create_all(engine) 1abcdefghi
23def create_hero(): 1jklmnopqr
24 with Session(engine) as session: 1abcdefghi
25 hero = Hero(name="Deadpond", secret_name="Dive Wilson") 1abcdefghi
26 print("The hero before saving in the DB") 1abcdefghi
27 print(hero) 1abcdefghi
28 print("The hero ID was already set") 1abcdefghi
29 print(hero.id) 1abcdefghi
30 session.add(hero) 1abcdefghi
31 session.commit() 1abcdefghi
32 session.refresh(hero) 1abcdefghi
33 print("After saving in the DB") 1abcdefghi
34 print(hero) 1abcdefghi
37def select_hero(): 1jklmnopqr
38 with Session(engine) as session: 1abcdefghi
39 hero_2 = Hero(name="Spider-Boy", secret_name="Pedro Parqueador") 1abcdefghi
40 session.add(hero_2) 1abcdefghi
41 session.commit() 1abcdefghi
42 session.refresh(hero_2) 1abcdefghi
43 hero_id = hero_2.id 1abcdefghi
44 print("Created hero:") 1abcdefghi
45 print(hero_2) 1abcdefghi
46 print("Created hero ID:") 1abcdefghi
47 print(hero_id) 1abcdefghi
49 selected_hero = session.get(Hero, hero_id) 1abcdefghi
50 print("Selected hero:") 1abcdefghi
51 print(selected_hero) 1abcdefghi
52 print("Selected hero ID:") 1abcdefghi
53 print(selected_hero.id) 1abcdefghi
56def main() -> None: 1jklmnopqr
57 create_db_and_tables() 1abcdefghi
58 create_hero() 1abcdefghi
59 select_hero() 1abcdefghi
62if __name__ == "__main__": 1jklmnopqr
63 main()