Django - databáze

Obsah
Jakmile je model a vše, co s ním souvisí, vytvořen, dalším aspektem, který je třeba vzít v úvahu, je interakce různých polí s databází.
Když hovoříme o chování databáze, odkazujeme na způsob, jakým musíme vidět, jak jsou data připravena k ukládání, způsob, jakým provádíme srovnání s datovými typy Krajta s nimiž jsou jejich hodnoty zastoupeny v naší aplikaci v Django.
db_type (self, connection)
Tato metoda je zřídka přepsána aplikačními třídami a podtřídami, vrací řetězec obsahující konkrétní data databáze, která řídí, jak se vytvářejí sloupce určitých polí.
Je důležité zmínit, že hodnota vrácená touto metodou je specifická pro backend databáze používaná v aplikaci, takže pokud se ji rozhodneme použít v projektech s různými databázovými backendy, musíme získat hodnotu připojení pomocí connection.settings_dict ['ENGINE']
Podívejme se na následujícím obrázku, jak můžeme převést do kódu základní použití této metody:

Při analýze kódu vidíme, že pokud databázový stroj je postgreSQL vrátíme hodnotu pro pole odlišnou od toho, pokud se jedná o jiný motor, jako je MySQL, takže můžeme vidět malý příklad užitečnosti této metody.
get_prep_value (vlastní, hodnota)
Toto je metoda, která slouží jako základ pro další metody, které musí připravit data pro použití v databázi.
Ve většině případů je převod objekty pythonu na jednodušší data, která lze přenést do databáze, nepředstavuje zásadní problém a můžeme použít standardní převod, ale když chceme provádět složitější převody, jako je například typ data, můžeme tuto metodu použít k péči o tuto práci, v následující grafice máme způsob, jak toho dosáhnout, který jsme popsali.

V příkladu při definování typu pole DurationField přepíšeme metodu get_prep_value () aby převzal objekt data a transformoval jej na desítkové hodnoty, aby jej mohl bez dalších komplikací používat v databázi.
get_db_prep_value (vlastní, hodnota, připojení, připraveno = nepravda)
Existují případy, kdy naše aplikace běží ve více než jednom databázovém stroji, a proto nám tato metoda umožňuje připravit data na základě enginu díky connection.settings_dict ['ENGINE'] v závislosti na motoru můžeme začlenit různé případy.
Příkladem je, když pracujeme s postgreSQL, tento motor dokáže zpracovat objekty data přímo, takže pokud zjistíme, že to je ono, můžeme hodnotu předat přímo, v následujícím příkladu se podíváme, jak zkombinujeme tuto metodu a předchozí dosáhnout robustnějšího výsledku:

Tímto tutoriál dokončíme s vědomím, že můžeme řídit chování databáze v Django pomocí metod přípravy dat z polí modelu.Líbil se vám tento návod a pomohl mu?Autora můžete odměnit stisknutím tohoto tlačítka, čímž mu dáte kladný bod

Vám pomůže rozvoji místa, sdílet stránku s přáteli

wave wave wave wave wave