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