Ismerje meg a Django adatbázis-kapcsolatait

Ismerje meg a Django adatbázis-kapcsolatait
Az Önhöz hasonló olvasók támogatják a MUO-t. Amikor a webhelyünkön található linkek használatával vásárol, társult jutalékot kaphatunk.

Az adatbázis-kapcsolat a különböző adatbázistáblák közötti kapcsolatot írja le. A kapcsolatok határozzák meg az adatok tárolásának és lekérésének módját. A Django jól működik relációs adatbázisrendszerekkel (RDBMS). Ezért támogatja az adatbázistábla kapcsolatokat.





A kapcsolatok típusa az alkalmazás követelményeitől és az általa modellezett adatoktól függ. A Django modellek és az adatbázis közötti jó kapcsolat javítja az adatok karbantartását. Ez magában foglalja a lekérdezések teljesítményének javítását és az adatok ismétlődésének csökkentését.





MAKEUSEOF A NAP VIDEÓJA

A kapcsolatok három fő típusának feltárásával megtudhatja, hogy a Django adatbázis-kapcsolatok hogyan befolyásolják az alkalmazások teljesítményét.





Adatbázis-kapcsolatok

A relációs adatbázis-rendszerek háromféle adatbázis-kapcsolatot támogatnak. Ezek a kapcsolatok egy-a-többhez, sok-többhöz és egy-egyhez viszonyok. Az adatbázis-reláció típusa befolyásolja az alkalmazás használati eseteit.

Django modellek adatbázistáblákat képviselnek az alkalmazásban. Jó adatbázisrendszer létrehozásához jó kapcsolatokat kell létrehoznia a táblák között. Az adatbázis-relációk határozzák meg, hogyan tárolja és jelenítse meg az adatokat az alkalmazásban.



Az adatbázis-reláció megértéséhez kezdje ezzel Django projekt létrehozása nevezett Motorháztetők. Az alkalmazás egy szomszédos közösségi hálózat lesz. Különböző városrészek társadalmi tevékenységeit, biztonságát és vállalkozásait irányítja majd.

A lakók regisztrálhatnak, bejelentkezhetnek és profilokat hozhatnak létre. Emellett bejegyzéseket és üzleti hirdetéseket is létrehozhatnak, hogy mindenki láthassa.





A kezdéshez hozzon létre egy adatbázist, amely az összes környékbeli adatot tárolja. Ezután létrehozza a Profil, NeighborHood, Business és Post modelleket. A modellek létrehozásához meg kell határoznia az adatbázistábláknak szükséges kapcsolatot.

Egy-egy adatbázis kapcsolat

Az egy-egy kapcsolat azt jelenti, hogy az egyik Django-modellben lévő rekord egy másik modellben lévő másik rekordhoz kapcsolódik. A két rekord egymástól függ. Ebben az esetben a Profil modell attól függ Felhasználói modell rezidens profilok létrehozásához.





Így minden, az alkalmazásban regisztrált lakoshoz csak egy profil tartozhat. Ezenkívül felhasználó nélkül nem létezhet profil.

from django.db import models 
from django.contrib.auth.models import User

class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, related_name='profile')
name = models.CharField(max_length=80, blank=True)
bio = models.TextField(max_length=254, blank=True)
profile_picture = CloudinaryField('profile_picture', default='default.png')
location = models.CharField(max_length=50, blank=True, null=True)
email = models.EmailField(null=True)

def __str__(self):
return f'{self.user.username} profile'

Django felhasználói modellje a Django beépített hitelesítési modellje. Nem kell hozzá modellt készíteni. Ehelyett importálja innen django.contrib.auth. Az OneToOneField() a Profil modell egy-egy kapcsolatot határoz meg.

Az on_delete=models.CASCADE argumentum megakadályozza ezen rekordok egyikének törlését. Mindkét táblából törölnie kell a rekordokat.

Használhatja a Django adminisztrátori felületet az alkalmazásban lévő kapcsolat megjelenítéséhez. A Django adminba való bejelentkezéshez adminisztrátorként kell regisztrálnia szuperfelhasználó .

Hozzon létre egy szuperfelhasználót a következő parancs futtatásával a terminálon:

jogszerű youtube videókat letölteni?
python manage.py createsuperuser

A rendszer kéri, hogy adja meg felhasználónevét, e-mail címét és jelszavát. Ha ezt megtette, indítsa el a szervert.

Nyissa meg az adminisztrációs oldalt egy böngészőben a http://127.0.0.1:8000/admin URL használatával.

Megjelenik az adminisztrációs oldal, ahol bejelentkezhet a korábban létrehozott hitelesítő adatokkal. Miután bejelentkezett, látni fogja a Csoportok és Felhasználók tárgyakat. A Django hitelesítési keretrendszer kezeli ezt a két modellt. Az alján látni fogja a Profil modell.

Nyissa meg a Profil modellt, és folytassa a profil hozzáadásával. Látni fogja, hogy a következőképpen jelenik meg:

  A Django admin a profil és a felhasználói modellek közötti kapcsolatot megjeleníti

Figyelje meg, hogy lehetősége van profilt létrehozni egy felhasználó számára. A OneToOneField() adattípus lehetővé teszi profilok létrehozását a hitelesített felhasználók számára. Az alkalmazás így kezeli az egy-egy kapcsolatokat.

Egy-a sokhoz kapcsolatok

A Az egy-a-többhöz kapcsolat azt jelenti, hogy egy modellben egy rekord egy másik modell sok rekordjához kapcsolódik. Többek közötti kapcsolatnak is nevezik.

mennyi időbe telik ezt kimondani

Az Ön esetében egy adminisztrátor több környéket is létrehozhat. De minden környék csak egy adminisztrátorhoz tartozhat. Az ForeignKey adattípust használhatja egy ilyen kapcsolat meghatározásához.

A Django beépített adminisztrátori felülettel rendelkezik. Nem kell hozzá modellt készíteni. Az adminisztrátornak joga van a tartalom kezeléséhez és az alkalmazás megjelenítéséhez az adminisztrációs panelről.

A sok rekordot befogadó modell rendelkezik majd a Idegen kulcs . A kapcsolatot egy a többhez viszonyítva határozza meg. Az alábbi kód megmutatja, hová kell helyezni a kulcsot.

class NeighbourHood(models.Model): 
admin = models.ForeignKey("Profile", on_delete=models.CASCADE, related_name='hood')
name = models.CharField(max_length=50)
location = models.CharField(max_length=60)
hood_logo = CloudinaryField('hood_logo', default='default.png')
description = models.TextField()
health_tell = models.IntegerField(null=True, blank=True)
police_number = models.IntegerField(null=True, blank=True)
Count= models.IntegerField(null=True, blank=True)

def __str__(self):
return f'{self.name} hood'

Az alkalmazáson a képen látható kapcsolat látható:

  A szomszédsági modell azt mutatja, hogy a rendszergazdai választás hozzáadva

Az Szomszédság a modellnek most van adminja. Ahhoz, hogy bárki létrehozhasson egy környéket, rendszergazdai jogokkal kell rendelkeznie. És egy környéken nem lehet sok adminisztrátor.

Sok-sok adatbázis-kapcsolatok

Sok-sok-ban kapcsolatokat, sok rekord az egyik modellben társul a másikhoz. Például a Hozzászólás és Üzleti a modellek több rekordot is tartalmazhatnak egymásról. A felhasználók több üzleti hirdetést is készíthetnek bejegyzéseikben, és fordítva.

A sok-sok kapcsolatok létrehozása azonban pontatlan adatokhoz vezethet. Más keretrendszerekben új táblát kell létrehoznia a két tábla összekapcsolásához.

A Django-nak van megoldása erre. Ha a sok a sokhoz mezőt használja, akkor létrehoz egy új táblát, amely a két táblát együtt képezi le . A sok a sokhoz mezőt a két modell bármelyikébe beillesztheti, de nem szabad mindkét modellben szerepelnie.

class Post(models.Model): 
title = models.CharField(max_length=120, null=True)
post = models.TextField()
date = models.DateTimeField(auto_now_add=True)
user = models.ForeignKey(Profile, on_delete=models.CASCADE, related_name='post_owner')
hood = models.ForeignKey(NeighbourHood, on_delete=models.CASCADE, related_name='hood_post')
business = models.ManyToManyField(Business)

def __str__(self):
return f'{self.title} post'

Most, amikor megnézi a Hozzászólás modellt az adminisztrációs panelen, több vállalkozást is csatolhat egy bejegyzéshez.

  A bejegyzésmodellben lehetőség van több vállalkozás hozzáadására

A Django leegyszerűsíti az adatbázis-kapcsolatokat

Az alkalmazáshoz használt adatbázis típusa határozza meg az adatok felhasználásának módját. A Django átfogó rendszerrel rendelkezik, amely megkönnyíti a relációs adatbázisok csatlakoztatását és működtetését.

A Django funkciói megkönnyítik az adatok tárolását és lekérését a kapcsolódó táblákból. Beépített API-kkal rendelkezik, amelyek összekapcsolják és adatbázis-relációkat hoznak létre az alkalmazáshoz.

Az adatbázis-kapcsolatok határozzák meg az alkalmazás viselkedését. Az, hogy egy az egyhez, egy a többhez vagy a sok a sokhoz kapcsolatokat használod, az Öntől függ.

A Django segítségével anélkül konfigurálhatja és tesztelheti a funkciókat, hogy az alkalmazás összetörne. Használja a Django-t az adatbázisrendszerek védelmére és a fejlesztői élmény optimalizálására.