Skip to content

Commit

Permalink
Solution
Browse files Browse the repository at this point in the history
  • Loading branch information
Quiet-Klirik committed Jul 22, 2023
1 parent b0d225a commit 7d42bc1
Show file tree
Hide file tree
Showing 3 changed files with 63 additions and 13 deletions.
26 changes: 13 additions & 13 deletions app/main.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
# from models import Actor
# from managers import ActorManager
#
# if __name__ == "__main__":
# Actor.objects = ActorManager()
#
# Actor.objects.create(first_name="Emma", last_name="Watson")
# Actor.objects.create(first_name="Daniel", last_name="Radclife")
# print(Actor.objects.all())
# Actor.objects.update(2, "Daniel", "Radcliffe")
# print(Actor.objects.all())
# Actor.objects.delete(1)
# print(Actor.objects.all())
from models import Actor
from managers import ActorManager

if __name__ == "__main__":
Actor.objects = ActorManager()

Actor.objects.create(first_name="Emma", last_name="Watson")
Actor.objects.create(first_name="Daniel", last_name="Radclife")
print(Actor.objects.all())
Actor.objects.update(2, "Daniel", "Radcliffe")
print(Actor.objects.all())
Actor.objects.delete(1)
print(Actor.objects.all())
42 changes: 42 additions & 0 deletions app/managers.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
import sqlite3

from models import Actor


class ActorManager:
def __init__(self) -> None:
self._connection = sqlite3.connect("cinema.db3")
self.table_name = "actors"

def create(self, first_name: str, last_name: str) -> None:
self._connection.execute(
f"INSERT INTO {self.table_name} (first_name, last_name) "
f"VALUES (?, ?)",
(first_name, last_name)
)
self._connection.commit()

def all(self) -> list[Actor]:
cursor = self._connection.execute(f"SELECT * FROM {self.table_name}")
return [Actor(*values) for values in cursor]

def update(
self,
id_to_update: int,
new_first_name: str,
new_last_name: str
) -> None:
self._connection.execute(
f"UPDATE {self.table_name} "
"SET first_name = ?, last_name = ? "
"WHERE id = ?",
(new_first_name, new_last_name, id_to_update)
)

def delete(self, where_id: int) -> None:
self._connection.execute(
f"DELETE FROM {self.table_name} "
"WHERE id = ?",
(where_id,)
)
self._connection.commit()
8 changes: 8 additions & 0 deletions app/models.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
from dataclasses import dataclass


@dataclass
class Actor:
id: int
first_name: str
last_name: str

0 comments on commit 7d42bc1

Please sign in to comment.