From 0d4ca7aa8b42ac18d3fe99e04dd0e4e3f4dfeefc Mon Sep 17 00:00:00 2001 From: Vlada Date: Wed, 21 Aug 2024 21:36:33 +0300 Subject: [PATCH 1/7] First commit --- app/main.py | 26 +++++++++++------------ app/managers.py | 55 ++++++++++++++++++++++++++++++++++++++++++++++++ app/models.py | 8 +++++++ table.png | Bin 0 -> 12133 bytes 4 files changed, 76 insertions(+), 13 deletions(-) create mode 100644 app/managers.py create mode 100644 app/models.py create mode 100644 table.png diff --git a/app/main.py b/app/main.py index 6f12a826..0dc0c43d 100644 --- a/app/main.py +++ b/app/main.py @@ -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()) diff --git a/app/managers.py b/app/managers.py new file mode 100644 index 00000000..b9a691f3 --- /dev/null +++ b/app/managers.py @@ -0,0 +1,55 @@ +import sqlite3 + +from models import Actor + + +class ActorManager: + def __init__(self): + self._connection = sqlite3.connect( + "C:\\Users\\vlada\\py-actor-manager\\identifier.sqlite" + ) + self.table_name = "actors" + + def create(self, first_name: str, last_name: str): + self._connection.execute( + f"INSERT " + f"INTO {self.table_name} (first_name, last_name)" + f"VALUES (?,?)", + (first_name, last_name) + ) + self._connection.commit() + + def all(self): + actor_manager_cursor = self._connection.execute( + f"SELECT * FROM {self.table_name}" + ) + return [ + Actor(*row) for row in actor_manager_cursor + ] + + def update( + self, + id_to_update: int, + new_first_name: str, + new_last_name: str + ): + self._connection.execute( + f"UPDATE {self.table_name} " + f"SET first_name = ?, last_name = ? " + f"WHERE id = ?", + (new_first_name, new_last_name, id_to_update) + ) + self._connection.commit() + + def delete(self, id_to_delete: int): + self._connection.execute( + f"DELETE FROM {self.table_name} " + f"WHERE id = ?", + (id_to_delete,) + ) + self._connection.commit() + + +if __name__ == "__main__": + manager = ActorManager() + print(manager.all()) diff --git a/app/models.py b/app/models.py new file mode 100644 index 00000000..c25144fd --- /dev/null +++ b/app/models.py @@ -0,0 +1,8 @@ +from dataclasses import dataclass + + +@dataclass +class Actor: + id: int + first_name: str + last_name: str diff --git a/table.png b/table.png new file mode 100644 index 0000000000000000000000000000000000000000..f207d8c3f26f31e4290d37b570694cc95dd8f535 GIT binary patch literal 12133 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 E0MU5)U;qFB literal 0 HcmV?d00001 From b50e176fd9b3339ab5bfd042d6abe504ef5d9f01 Mon Sep 17 00:00:00 2001 From: Vlada Date: Wed, 21 Aug 2024 21:43:55 +0300 Subject: [PATCH 2/7] fixed flake8 --- app/managers.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/managers.py b/app/managers.py index b9a691f3..c0d68ce0 100644 --- a/app/managers.py +++ b/app/managers.py @@ -4,13 +4,13 @@ class ActorManager: - def __init__(self): + def __init__(self) -> None: self._connection = sqlite3.connect( "C:\\Users\\vlada\\py-actor-manager\\identifier.sqlite" ) self.table_name = "actors" - def create(self, first_name: str, last_name: str): + def create(self, first_name: str, last_name: str) -> None: self._connection.execute( f"INSERT " f"INTO {self.table_name} (first_name, last_name)" @@ -19,7 +19,7 @@ def create(self, first_name: str, last_name: str): ) self._connection.commit() - def all(self): + def all(self) -> None: actor_manager_cursor = self._connection.execute( f"SELECT * FROM {self.table_name}" ) @@ -32,7 +32,7 @@ def update( id_to_update: int, new_first_name: str, new_last_name: str - ): + ) -> None: self._connection.execute( f"UPDATE {self.table_name} " f"SET first_name = ?, last_name = ? " @@ -41,7 +41,7 @@ def update( ) self._connection.commit() - def delete(self, id_to_delete: int): + def delete(self, id_to_delete: int) -> None: self._connection.execute( f"DELETE FROM {self.table_name} " f"WHERE id = ?", From 10a8df0a3efc63b0eb5150b513f0f385de104e13 Mon Sep 17 00:00:00 2001 From: Vlada Date: Fri, 23 Aug 2024 18:00:42 +0300 Subject: [PATCH 3/7] fixed --- app/managers.py | 28 ++++++++++++---------------- table.png | Bin 12133 -> 0 bytes 2 files changed, 12 insertions(+), 16 deletions(-) delete mode 100644 table.png diff --git a/app/managers.py b/app/managers.py index c0d68ce0..42d63ad1 100644 --- a/app/managers.py +++ b/app/managers.py @@ -1,27 +1,28 @@ import sqlite3 - +import os from models import Actor class ActorManager: def __init__(self) -> None: self._connection = sqlite3.connect( - "C:\\Users\\vlada\\py-actor-manager\\identifier.sqlite" + os.path.join(os.path.dirname(__file__), "identifier.sqlite") ) self.table_name = "actors" def create(self, first_name: str, last_name: str) -> None: self._connection.execute( - f"INSERT " - f"INTO {self.table_name} (first_name, last_name)" - f"VALUES (?,?)", + f""" + INSERT INTO {self.table_name} (first_name, last_name) + VALUES (?, ?) + """, (first_name, last_name) ) self._connection.commit() def all(self) -> None: actor_manager_cursor = self._connection.execute( - f"SELECT * FROM {self.table_name}" + f"""SELECT * FROM {self.table_name}""" ) return [ Actor(*row) for row in actor_manager_cursor @@ -34,22 +35,17 @@ def update( new_last_name: str ) -> None: self._connection.execute( - f"UPDATE {self.table_name} " - f"SET first_name = ?, last_name = ? " - f"WHERE id = ?", + f"""UPDATE {self.table_name} """ + f"""SET first_name = ?, last_name = ? """ + f"""WHERE id = ?""", (new_first_name, new_last_name, id_to_update) ) self._connection.commit() def delete(self, id_to_delete: int) -> None: self._connection.execute( - f"DELETE FROM {self.table_name} " - f"WHERE id = ?", + f"""DELETE FROM {self.table_name} """ + f"""WHERE id = ?""", (id_to_delete,) ) self._connection.commit() - - -if __name__ == "__main__": - manager = ActorManager() - print(manager.all()) diff --git a/table.png b/table.png deleted file mode 100644 index f207d8c3f26f31e4290d37b570694cc95dd8f535..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12133 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 E0MU5)U;qFB From 28aaaa112499ec2d52bca54d765f8e12c0ccd5e9 Mon Sep 17 00:00:00 2001 From: Vlada Date: Sat, 24 Aug 2024 14:34:02 +0300 Subject: [PATCH 4/7] fixed2 --- app/managers.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/app/managers.py b/app/managers.py index 42d63ad1..3dc1baf4 100644 --- a/app/managers.py +++ b/app/managers.py @@ -22,7 +22,9 @@ def create(self, first_name: str, last_name: str) -> None: def all(self) -> None: actor_manager_cursor = self._connection.execute( - f"""SELECT * FROM {self.table_name}""" + f""" + SELECT * FROM {self.table_name} + """ ) return [ Actor(*row) for row in actor_manager_cursor @@ -35,17 +37,21 @@ def update( new_last_name: str ) -> None: self._connection.execute( - f"""UPDATE {self.table_name} """ - f"""SET first_name = ?, last_name = ? """ - f"""WHERE id = ?""", + f""" + UPDATE {self.table_name} + SET first_name = ?, last_name = ? + WHERE id = ? + """, (new_first_name, new_last_name, id_to_update) ) self._connection.commit() def delete(self, id_to_delete: int) -> None: self._connection.execute( - f"""DELETE FROM {self.table_name} """ - f"""WHERE id = ?""", + f""" + DELETE FROM {self.table_name} + WHERE id = ? + """, (id_to_delete,) ) self._connection.commit() From afb915231a7f68a51fc0ae23a4acb7146f59fc62 Mon Sep 17 00:00:00 2001 From: Vlada Date: Sun, 25 Aug 2024 15:36:44 +0300 Subject: [PATCH 5/7] added changes --- app/main.py | 14 ++++++++++++++ app/managers.py | 7 +++++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/app/main.py b/app/main.py index 0dc0c43d..39b4199f 100644 --- a/app/main.py +++ b/app/main.py @@ -1,3 +1,17 @@ +# 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 diff --git a/app/managers.py b/app/managers.py index 3dc1baf4..0882c468 100644 --- a/app/managers.py +++ b/app/managers.py @@ -1,12 +1,14 @@ import sqlite3 + import os + from models import Actor class ActorManager: def __init__(self) -> None: self._connection = sqlite3.connect( - os.path.join(os.path.dirname(__file__), "identifier.sqlite") + os.path.join(os.path.dirname(__file__), "cinema.sqlite") ) self.table_name = "actors" @@ -23,7 +25,8 @@ def create(self, first_name: str, last_name: str) -> None: def all(self) -> None: actor_manager_cursor = self._connection.execute( f""" - SELECT * FROM {self.table_name} + SELECT * + FROM {self.table_name} """ ) return [ From 6c532e19343d4af44fb062a3af62193a663bf96e Mon Sep 17 00:00:00 2001 From: Vlada Date: Sun, 25 Aug 2024 16:06:05 +0300 Subject: [PATCH 6/7] blank between imports --- app/managers.py | 1 - 1 file changed, 1 deletion(-) diff --git a/app/managers.py b/app/managers.py index 0882c468..cdac811b 100644 --- a/app/managers.py +++ b/app/managers.py @@ -1,5 +1,4 @@ import sqlite3 - import os from models import Actor From e714acf2fad3ad63fb5a8a9e92ddcf2e298c0f82 Mon Sep 17 00:00:00 2001 From: Vlada Date: Sun, 25 Aug 2024 17:14:17 +0300 Subject: [PATCH 7/7] no changes --- app/main.py | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/app/main.py b/app/main.py index 39b4199f..6f12a826 100644 --- a/app/main.py +++ b/app/main.py @@ -11,17 +11,3 @@ # 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())