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