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ý