Krajta

Co je Django ORM?

Co je Django ORM?
V dnešním světě se technologie stala nedílnou součástí našeho života, protože vše kolem nás se digitalizovalo. To platí i v podnikatelském sektoru. Podniky, které nevyužívají správnou infrastrukturu a nejsou schopny vybavit správnou technologickou architekturu, nakonec zaostávají za svými konkurenty. Je to hlavně proto, že v dnešní době exponenciálně vzrostlo množství dat, na které se podniky a organizace při své analýze spoléhají, a proto, aby je bylo možné efektivně zpracovat a interpretovat, musí mít správné nastavení nástrojů a infrastruktury na jejich podporu.

Databáze jsou jednou z nejpopulárnějších technologií používaných ke shromažďování a organizaci dat, protože umožňují snadný přístup, správu a aktualizaci dat. Tyto databáze však k provádění těchto úkolů vyžadují systém správy. Většinou se jazyk SQL používá k provádění operací v databázi, ale jak vaše aplikace roste a stává se složitější, je extrémně obtížné mít představu o tom, co přesně každá operace dělá. To je místo, kde do obrazu vstupuje technika Object Relational Mapping (ORM). To umožňuje dotazování a manipulaci s daty pomocí objektově orientovaného programovacího jazyka podle vašeho výběru. ORM snižují složitost vašeho kódu a zvyšují jeho srozumitelnost, což zase usnadňuje aktualizaci, údržbu a opětovné použití kódu.

V tomto článku se podíváme na Django ORM, což je ORM založený na Pythonu, a proto jedna z nejpopulárnějších technologií, která se dnes používá.

Co je Django?

Než přejdeme k pohledu na ORM Djanga, podívejme se nejprve, co vlastně tato Pythonic technologie zvaná Django je.

Django je bezplatný a otevřený webový rámec navržený v Pythonu, a proto má velmi čistý a elegantní design a je jednoduchý, flexibilní, spolehlivý a škálovatelný. Webovým vývojářům to velmi usnadňuje, protože poskytuje uživatelům hotové komponenty, které jim zase brání v tom, aby psali vše od začátku, a ve výsledku zrychluje jejich práci a snižuje režii na jejich webu. Kromě toho je extrémně bezpečný a pomáhá uživatelům vyhnout se problémům se zabezpečením, jako jsou útoky na nápravu uživatelského rozhraní, injekce SQL atd. Má také extrémně velkou komunitu, která je vždy přístupná prostřednictvím fór a je vždy připravena nabídnout svou pomoc ostatním.

Pojďme se konečně podívat na Django ORM a některé z jeho hlavních funkcí.

Přístup k ORM Django

Po instalaci Django a nastavení jeho projektu jsme obvykle dostali následující počáteční soubory:

mysite over here odkazuje na název projektu, který jste vytvořili. Všechny tyto soubory mají své vlastní použití a je důležité vědět, jakou roli každý soubor hraje. Naše zaměření se zde bude soustředit na správu.py soubor, který pro nás bude ovládat spoustu různých věcí, jako je nastavení serveru, migrace, komunikace s databází, stejně jako vstup do režimu ORM.

Chcete-li otevřít Django ORM, otevřete příkazový řádek z hlavního adresáře vašeho projektu Django a spusťte následující příkaz:

$ python spravovat.py skořápka

Tím se nám otevře interaktivní prostředí, které nám umožní zahájit interakci s databází pomocí ORM.

Manipulace s databází pomocí dotazů v Django ORM

Vzhledem k tomu, že ORM nám umožňuje komunikovat s databází, můžeme nyní psát různé dotazy k načtení a manipulaci s daty z databáze. Než však budeme moci začít pracovat na databázi v shellu, musíme nejprve importovat všechny modely s ní spojené. To lze provést jednoduchým spuštěním příkazu v interaktivním prostředí, jak je znázorněno níže:

$ z appName.modely importovat modelName

Zde appName odkazuje na název vaší aplikace, kterou jste vytvořili, a tedy kde jsou vaše modely aktuálně uloženy. ModelName odkazuje na název modelu, který chcete importovat a použít. Zde můžete importovat více modelů, jak je vidět v níže uvedeném příkladu:

Nyní můžete přistupovat k objektu modelu a číst z něj data. Například pokud chceme seznam všech příspěvků, můžeme je jednoduše získat spuštěním následujícího příkazu do našeho terminálu:

$ Příspěvek.předměty.Všechno()

Výsledek výše uvedeného příkazu je následující:

V ORM můžeme dělat několik dalších druhů věcí, jako je vytváření nových databázových dat, aktualizace dat a všechny ostatní databázové příkazy, které můžete.

Modelování databáze

Jednou z nejlepších věcí, které Django ORM poskytuje svým uživatelům, je schopnost automaticky propojovat a navazovat vztahy mezi atributy objektu vašeho modelu a odpovídajícími poli tabulky. V databázích existují hlavně tři typy vztahů. jedná se o vztah One-to-One, One-to-Many nebo Many-to-One vztah a mnoho-to-many vztahy.

Vztah jedna k jedné je, jak název napovídá, kde záznam jedné tabulky odpovídá jednomu záznamu jiné tabulky. V Django ORM to můžeme snadno vytvořit takto:

třída Parent (modely.Modelka):
uživatel = modely.OneToOneField (
Uživatel,
on_delete = modely.KASKÁDA,
primary_key = True,
)
name_of_father = modely.CharField (max_length = 100)
name_of_mother = models.CharField (max_length = 100)

Tady může mít každý uživatel pouze jednoho biologického rodiče, a proto se jedná o vztah jedna k jedné. Nyní, pokud odstraníme libovolného uživatele přistupujícího k tomuto modelu, odstraní se také model 2nd uživatele, protože jsou na sobě navzájem závislí.

Jeden na více nebo více na jednoho odkazuje na vztah, kde nadřazený záznam může mít několik podřízených záznamů, ale může mít také pouze jedno nebo žádné dítě. V Django ORM můžeme tento vztah snadno navázat pomocí Cizí klíč pole:

třída Zákazník (modely.Modelka):
name = modely.CharField (max_length = 255)
třída vozidla (modely.Modelka):
zákazník = modely.Cizí klíč(
Zákazník,
on_delete = modely.KASKÁDA
)

Jak je vidět ve výše uvedeném kódu, zákazník může mít více vozidel.

A konečně, vztahy mezi mnoha definují vztah, kde se může více tabulek vztahovat k sobě navzájem. Můžeme to vytvořit pomocí ManyToMany pole. V níže uvedeném příkladu jsme vytvořili dva modely, jeden pro uživatele a druhý pro jejich příspěvky. Může existovat i více uživatelů, protože každý uživatel může mít více příspěvků.

třída Uživatel (modely.Modelka):
post = modely.ManyToManyField (příspěvek, prázdné = True)
přátelé = modely.ManyToManyField (nastavení.AUTH_USER_MODEL, prázdné = True)
třída Post (modely.Modelka):
post = modely.Textové pole()
líbí se = modely.ManyToManyField (nastavení.AUTH_USER_MODEL, blank = True, related_name = 'user_likes')

Závěr

Django ORM je extrémně výkonný nástroj, díky kterému je práce webových vývojářů mnohem jednodušší. Má řadu funkcí, jako je manipulace s databázovými modely, navázání vztahu mezi modely a mnoho dalšího. Stručně řečeno, Django ORM je jednou z nejlepších věcí, které jsou s Django dodávány, a je vysoce efektivní při práci, která mu je poskytována.

Hry Jak stáhnout a přehrát Sid Meier's Civilization VI v systému Linux
Jak stáhnout a přehrát Sid Meier's Civilization VI v systému Linux
Úvod do hry Civilization 6 je moderní pojetí klasického konceptu představeného v sérii her Age of Empires. Myšlenka byla docela jednoduchá; začali bys...
Hry Jak nainstalovat a hrát Doom na Linuxu
Jak nainstalovat a hrát Doom na Linuxu
Úvod do Doom Série Doom vznikla v 90. letech po vydání původního Doomu. Byl to okamžitý hit a od té doby herní série získala řadu ocenění a původní Do...
Hry Vulkan pro uživatele Linuxu
Vulkan pro uživatele Linuxu
S každou novou generací grafických karet vidíme, že vývojáři her posouvají hranice grafické věrnosti a přibližují se k fotorealismu. Ale navzdory vešk...