Coverage for docs_src/advanced/uuid/tutorial001.py: 100%
46 statements
« prev ^ index » next coverage.py v7.6.12, created at 2025-03-07 05:42 +0000
« prev ^ index » next coverage.py v7.6.12, created at 2025-03-07 05:42 +0000
1import uuid 1abcdefg
2from typing import Union 1abcdefg
4from sqlmodel import Field, Session, SQLModel, create_engine, select 1abcdefg
7class Hero(SQLModel, table=True): 1abcdefg
8 id: uuid.UUID = Field(default_factory=uuid.uuid4, primary_key=True) 1abcdefg
9 name: str = Field(index=True) 1abcdefg
10 secret_name: str 1abcdefg
11 age: Union[int, None] = Field(default=None, index=True) 1abcdefg
14sqlite_file_name = "database.db" 1abcdefg
15sqlite_url = f"sqlite:///{sqlite_file_name}" 1abcdefg
17engine = create_engine(sqlite_url, echo=True) 1abcdefg
20def create_db_and_tables(): 1abcdefg
21 SQLModel.metadata.create_all(engine) 1abcdefg
24def create_hero(): 1abcdefg
25 with Session(engine) as session: 1abcdefg
26 hero = Hero(name="Deadpond", secret_name="Dive Wilson") 1abcdefg
27 print("The hero before saving in the DB") 1abcdefg
28 print(hero) 1abcdefg
29 print("The hero ID was already set") 1abcdefg
30 print(hero.id) 1abcdefg
31 session.add(hero) 1abcdefg
32 session.commit() 1abcdefg
33 session.refresh(hero) 1abcdefg
34 print("After saving in the DB") 1abcdefg
35 print(hero) 1abcdefg
38def select_hero(): 1abcdefg
39 with Session(engine) as session: 1abcdefg
40 hero_2 = Hero(name="Spider-Boy", secret_name="Pedro Parqueador") 1abcdefg
41 session.add(hero_2) 1abcdefg
42 session.commit() 1abcdefg
43 session.refresh(hero_2) 1abcdefg
44 hero_id = hero_2.id 1abcdefg
45 print("Created hero:") 1abcdefg
46 print(hero_2) 1abcdefg
47 print("Created hero ID:") 1abcdefg
48 print(hero_id) 1abcdefg
50 statement = select(Hero).where(Hero.id == hero_id) 1abcdefg
51 selected_hero = session.exec(statement).one() 1abcdefg
52 print("Selected hero:") 1abcdefg
53 print(selected_hero) 1abcdefg
54 print("Selected hero ID:") 1abcdefg
55 print(selected_hero.id) 1abcdefg
58def main() -> None: 1abcdefg
59 create_db_and_tables() 1abcdefg
60 create_hero() 1abcdefg
61 select_hero() 1abcdefg
64if __name__ == "__main__": 1abcdefg
65 main()