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