Na hodině budeme probírat správu databáze SQLite pomocí knihovního modulu sqlite3, která v podstatě až na iteraci nad návratovou množinou záznamů používá přímo jazyk SQL.
Vaším úkolem je dohledat alespoň několik ORM-modulů mapujících databázi SQLite do Pythonu. (Hned na první dotaz na internetu jsem jich objevil nejméně pět, takže máte co zkoumat.) Pro každý modul zaznamenejte jeho jméno, zdroj na internetu a okopírujte několik příkladů z dokumentace. A teď to zajímavé: Jelikož vlastně s databázemi neumíme ještě pracovat, chci po vás jedinou věc – po jednom semestru Pythonu se na tyto dohledané příklady podívejte a čistě vizuálně zhodnoťte, která ORM vám přijde nejpřehlednější.
PS: Jde o to, že dlouholetí uživatelé ORM budou asi skoro všichni přísahat na SQLAlchemy, která je ovšem podle podobného počtu uživatelů pro začátečníky asi nepříliš vhodná. Tak mě prostě zajímá, co byste si samy vybraly.
Řešte všechny příklady na tvorbu a práci s databází chemických prvků.
Zopakujte si předchozí příklad na databázi chemických prvků, ale tentokrát ji neřešte pomocí knihovního modulu sqlite3 nýbrž pomocí Vámi zvoleného ORM.
PS: Jakožto asi nejvíce pythoní mám v přednáškách popsané základy práce s PonyORM, ale s radostí uvidím použitou nějakou jinou knihovnu.
Příště – až probereme formuláře v HTML5 – vás bude čekat úkol na vytvoření GUI pro výpis filtrovatelných záznamů databáze chemických prvků ze cvičení 2. Protože jste neabsolvovali předmět Webové technologie, berte tento úkol jako povinné dostudování (či možná zopakování ze střední školy) základů HTML a jeho propojení s aplikací WSGI. Pročež si tedy nastudujte (upravený) kód z hodiny:
<pre>
;
Vyjděte z odladěného kódu pro dva formulářové prvky (soubor 10.py z archívu) a upravte ho pro dotaz typu „name & density“ (tedy opět dva formulářové prvky, jen elektronegativitu nahradí hustota).
Pomocí funkcí dir()
a getattr()
vyrobte podobný rozumně naformátovaný výpis všech binárních příznaků modulu re:
1 0b1 T TEMPLATE 2 0b10 I IGNORECASE 4 0b100 L LOCALE 8 0b1000 M MULTILINE 16 0b10000 S DOTALL 32 0b100000 U UNICODE 64 0b1000000 X VERBOSE 128 0b10000000 DEBUG DEBUG 256 0b100000000 A ASCII
Konečně jsme se (skoro) ve zdraví sešli, aplikujme proto Numpy (a Pillow) na pár zajímavých úloh s obrázky. Najděte si nějakou pěknou fotku a zkuste s ní pomocí uvedených knihoven (viz příklady z hodiny) splnit následující úlohy:
PS: Formát Pillow pro zápis RGB-obrázku je nepřekvapivě 'RGB'
.