Az adatbázisok az egyik legnépszerűbb technológia, amelyet az adatok gyűjtésére és rendszerezésére használnak, mivel lehetővé teszik, hogy az adatok könnyen hozzáférhetőek, kezelhetők és frissüljenek. Ezekhez az adatbázisokhoz azonban kezelési rendszerre van szükség a feladatok elvégzéséhez. Leginkább az SQL nyelvet használják az adatbázisban végzett műveletek végrehajtására, azonban az alkalmazás növekedésével és bonyolultabbá válásával rendkívül nehéz elképzelni, hogy pontosan mit csinálnak az egyes műveletek. Itt jön a képbe az Object Relational Mapping (ORM) technika. Ez lehetővé teszi az adatok lekérdezését és manipulálását az Ön által választott objektum-orientált programozási nyelv segítségével. Az ORM-ek csökkentik a kód összetettségét és érthetőbbé teszik, ami viszont megkönnyíti a kód frissítését, karbantartását és újrafelhasználását.
Ebben a cikkben a Django ORM-et vesszük szemügyre, amely egy Python-alapú ORM, ezért a napjainkban használt egyik legnépszerűbb technológia.
Mi az a Django?
Mielőtt továbblépnénk a Django ORM-jére, először nézzük meg, mi is valójában ez a Django nevű Pythonikus technológia.
A Django egy ingyenes és nyílt forráskódú webkeret, amelyet Pythonban terveztek, ezért nagyon tiszta és letisztult kialakítású, egyszerű, rugalmas, megbízható és méretezhető. Rendkívül megkönnyíti a webfejlesztők dolgát, mivel kész komponensekkel látja el a felhasználókat, amelyek viszont megakadályozzák őket abban, hogy mindent a semmiből írjanak, ennek eredményeként gyorsabbá tegyék munkájukat és csökkentsék a weboldaluk általános költségeit. Ezenkívül rendkívül biztonságos, és segít a felhasználóknak elkerülni a biztonsági aggályokat, mint például a felhasználói felület javítási támadásai, SQL injekciók stb. Rendkívül nagy közösséggel is rendelkezik, amely mindig elérhető a fórumokon keresztül, és mindig kész felajánlani segítségét másoknak.
Most nézzük meg végre a Django ORM-et és néhány főbb jellemzőjét.
Hozzáférés a Django ORM-hez
A Django telepítése és a projekt beállítása után általában a következő kezdeti fájlokat kapjuk meg:
Az itt található mysite a létrehozott projekt nevére utal. Mindezeknek a fájloknak saját felhasználása van, és fontos, hogy ismerni kell az egyes fájlok szerepét. Itt az irányításra összpontosítunk.py fájl, amely sokféle dolgot fog irányítani számunkra, például egy szerver felállítását, migrálást, kommunikációt egy adatbázissal, valamint az ORM módba való belépést.
A Django ORM megnyitásához nyisson meg egy parancssort a Django projekt főkönyvtárából, és futtassa a következő parancsot:
$ python kezelése.py héjaEz egy interaktív héjat nyit meg számunkra, amely lehetővé teszi számunkra, hogy az ORM használatával elkezdjünk kölcsönhatásba lépni az adatbázissal.
Az adatbázis kezelése lekérdezések segítségével a Django ORM-ben
Mivel az ORM lehetővé teszi számunkra, hogy kölcsönhatásba lépjünk az adatbázissal, most különféle lekérdezéseket írhatunk az adatok lekérésére és kezelésére az adatbázisból. Mielőtt azonban elkezdhetnénk a héjban lévő adatbázis kidolgozását, először be kell importálnunk az összes hozzá társított modellt. Ezt úgy tehetjük meg, hogy egyszerűen futtatunk egy parancsot az interaktív shellben, az alábbiak szerint:
$ from appName.modellek import modelNameItt az appName az Ön által létrehozott alkalmazás nevére utal, így a modelljeit jelenleg tárolják. A modelName az importálni és használni kívánt modell nevére utal. Itt több modellt importálhat, amint az az alábbi példában látható:
Most hozzáférhet a modellobjektumhoz, és adatokat olvashat el belőle. Például, ha az összes bejegyzés listáját akarjuk, egyszerűen megszerezhetjük őket, ha a következő parancsot futtatjuk a terminálunkba:
$ Post.tárgyakat.minden()A következő a fenti parancs eredménye:
Az ORM-ben számos más típusú dolgot is megtehetünk, például új adatbázis-adatok létrehozásával, az adatok frissítésével és az összes többi adatbázis-paranccsal.
Adatbázis modellezés
Az egyik legjobb dolog, amit a Django ORM nyújt a felhasználóinak, az a képesség, hogy automatikusan összekapcsolja és kapcsolatot teremtsen a modell objektumának attribútumai és a megfelelő táblamezők között. Az adatbázisokban főleg három típusú kapcsolat létezik. ezek az egy-egy kapcsolat, a sok-sok vagy sok-sok kapcsolat és a sok-sok kapcsolat.
A "One-to-One" kapcsolat, amint a neve is mutatja, ahol az egyik tábla rekordja megfelel egy másik tábla egyetlen rekordjának. A Django ORM-ben ezt könnyen megállapíthatjuk, például az alábbiak szerint:
osztály Szülő (modellek.Modell):felhasználó = modellek.OneToOneField (
Felhasználó,
on_delete = modellek.VÍZESÉS,
primary_key = Igaz,
)
apja neve = modellek.CharField (max_hossz = 100)
anya neve = modellek.CharField (max_hossz = 100)
Itt minden felhasználónak csak egyedülálló biológiai szülei lehetnek, ezért ez egy-egy kapcsolat. Ha törölünk bármely felhasználót, aki hozzáfér ehhez a modellhez, akkor a 2 modelljét is törlind felhasználó, mivel függenek egymástól.
Az egy a sokhoz vagy a sok az egyhez olyan kapcsolatra utal, ahol a szülői nyilvántartásnak több gyermekrekordja lehet, azonban csak egy vagy egy sem lehet gyermeke. A Django ORM-ben könnyen létrehozhatjuk ezt a kapcsolatot a Idegen kulcs terület:
osztály Ügyfél (modellek.Modell):név = modellek.CharField (max_hossz = 255)
osztályú jármű (modellek.Modell):
ügyfél = modellek.Idegen kulcs(
Vevő,
on_delete = modellek.VÍZESÉS
)
Amint az a fenti kódban látható, az ügyfélnek több járműve lehet.
Végül a sok-sok kapcsolat meghatározza azt a kapcsolatot, ahol több tábla kapcsolódhat egymáshoz. Ezt létrehozhatjuk a ManyToMany terület. Az alábbi példában két modellt hoztunk létre, az egyiket a felhasználónak, a másikat a bejegyzéseiknek. Több felhasználó is lehet, mivel minden felhasználónak több bejegyzése lehet.
osztály Felhasználó (modellek.Modell):post = modellek.ManyToManyField (Bejegyzés, üres = Igaz)
barátok = modellek.ManyToManyField (beállítások.AUTH_USER_MODEL, üres = Igaz)
osztályú Post (modellek.Modell):
post = modellek.TextField ()
kedvel = modellek.ManyToManyField (beállítások.AUTH_USER_MODEL, üres = True, related_name = 'user_likes')
Következtetés
A Django ORM egy rendkívül hatékony eszköz, és így sokkal könnyebbé tette a webfejlesztők munkáját. Számos olyan funkcióval rendelkezik, mint az adatbázis-modellek manipulálása, a modellek közötti kapcsolat kialakítása és még sok más. Dióhéjban a Django ORM az egyik legjobb dolog, ami Djangóval együtt jár, és nagyon hatékony a számára biztosított munkában.