Lekce 8 - Založení databáze v PySide6 a QtSql - Ukládání záznamů
V předchozí lekci, Založení databáze v PySide6 a QtSql, jsme si vysvětlili základy práce s SQL a
Qt frameworkem v konzolovém prostředí pomocí knihovny
PySide6
.
V následujícím tutoriálu databází v Pythonu budeme
pokračovat v tvorbě databáze pomocí knihovny PySide6
a
frameworku Qt. Ukážeme si tvorbu dotazů pomocí INSERT a s
tím spojená rizika týkající se SQL Injection. Vysvětlíme
si, jak tento problém řešit. Nakonec se zaměříme na ukládání
záznamů.
Dotazy INSERT
Dotaz INSERT
je SQL příkaz, který slouží k
vložení nových záznamů do tabulky v databázi. Následující konstanty
jsou univerzální pro obě naše použité databáze. Stejně jako v lekci Založení databáze
v PySide6 a QtSql je v přiloženém archivu jak zde použitý kód pro
SQLite, tak i pro databázi PostgreSQL:
INSERT_AUTHOR = """ INSERT INTO author(name) VALUES(:name) """ INSERT_BOOK = """ INSERT INTO book(author_id, title) VALUES(:author, :title) """ INSERT_GENRE = """ INSERT INTO genre(title) VALUES(:title) """ INSERT_BOOK_GENRE = """ INSERT INTO book_genre(book_id, genre_id) VALUES(:book, :genre) """
Zamysleme se nad tím, proč jsou v kódu použity dvojtečky, například
zde: VALUES(:author, :title)
. Důvodem je bezpečnost. Nejde totiž
o přímé parametry, nýbrž o zástupné texty. O bezpečnosti si nyní
musíme říct více.
...konec náhledu článku...
Pokračuj dál
Došel jsi až sem a to je super! Věříme, že ti první lekce ukázaly něco nového a užitečného.
Chceš v kurzu pokračovat? Přejdi do prémiové sekce.
Koupit tento kurz
Obsah článku spadá pod licenci Premium, koupí článku souhlasíš se smluvními podmínkami.
- Neomezený a trvalý přístup k jednotlivým lekcím.
- Kvalitní znalosti v oblasti IT.
- Dovednosti, které ti pomohou získat vysněnou a dobře placenou práci.
Popis článku
Požadovaný článek má následující obsah:
V tomto tutoriálu databází v Pythonu budeme pokračovat v tvorbě databáze pomocí knihovny PySide6 a zaměříme se na ukládání záznamů.
Kredity získáš, když podpoříš naši síť. To můžeš udělat buď zasláním symbolické částky na podporu provozu nebo přidáním obsahu na síť.