ORM knihovna

Naprogramujte jednoduchou ORM (Object-Relational Mapping) knihovnu pro práci s databází. Vaše ORM knihovna by měla umožnit uživatelům definovat modely (třídy) a tyto modely by měly být mapovány na databázové tabulky. ORM by měla podporovat základní CRUD (Create, Read, Update, Delete) operace pro práci s daty.

Konkrétně by vaše ORM měla umožnit následující funkce:

  • definice modelů pomocí tříd s atributy, které reprezentují sloupce v tabulce
  • definice vztahů mezi modely (1:1, 1:N, M:N)
  • mapování modelů na databázové tabulky
  • vytváření nových záznamů v databázi
  • aktualizace záznamů v databázi
  • načítání záznamů z databáze podle různých kritérií
  • mazání záznamů z databáze

💡 Zkuste se nad úlohou zamyslet i z pohledu dědičnosti a rozpadu kódu na logické části - nabízí se například jedna třída jako datový kontejner (model) a jedna, která se bude starat o operace nad databází (data manager).

Co se touto úlohou naučím a o čem si něco přečíst?
  • Jak se připojit do MySQL (nebo jiné relační) databáze pomocí Pythonu
  • SQLAlchemy - jedna z nejpopulárnějších ORM knihoven pro Python
Kde se s touhle úlohou typově setkám?
  • Tvorba webových stránek a API
Úroveň znalostí
Středně pokročilý