Coverage for docs_src / advanced / uuid / tutorial001_py310.py: 100%

45 statements  

« prev     ^ index     » next       coverage.py v7.13.0, created at 2026-11-09 00:02 +0000

1import uuid 1jklmnopqr

2 

3from sqlmodel import Field, Session, SQLModel, create_engine, select 1jklmnopqr

4 

5 

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

11 

12 

13sqlite_file_name = "database.db" 1jklmnopqr

14sqlite_url = f"sqlite:///{sqlite_file_name}" 1jklmnopqr

15 

16engine = create_engine(sqlite_url, echo=True) 1jklmnopqr

17 

18 

19def create_db_and_tables(): 1jklmnopqr

20 SQLModel.metadata.create_all(engine) 1abcdefghi

21 

22 

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

35 

36 

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

48 

49 statement = select(Hero).where(Hero.id == hero_id) 1abcdefghi

50 selected_hero = session.exec(statement).one() 1abcdefghi

51 print("Selected hero:") 1abcdefghi

52 print(selected_hero) 1abcdefghi

53 print("Selected hero ID:") 1abcdefghi

54 print(selected_hero.id) 1abcdefghi

55 

56 

57def main() -> None: 1jklmnopqr

58 create_db_and_tables() 1abcdefghi

59 create_hero() 1abcdefghi

60 select_hero() 1abcdefghi

61 

62 

63if __name__ == "__main__": 1jklmnopqr

64 main()