Python

Hva er Django ORM?

Hva er Django ORM?
I dagens verden har teknologi blitt en integrert del av livene våre etter hvert som alt rundt oss har blitt digitalisert. Dette gjelder også i næringslivet. Bedrifter som ikke klarer å bruke riktig infrastruktur og ikke er i stand til å utstyre riktig teknologisk arkitektur, havner bak konkurrentene. Dette er hovedsakelig fordi mengden data som bedrifter og organisasjoner stoler på for analysen deres har vokst eksponentielt i dag, og som et resultat, for at de skal kunne behandle og tolke det på en effektiv måte, må de ha riktig sett av verktøy og infrastruktur for å støtte dem.

Databaser er en av de mest populære teknologiene som brukes til innsamling og organisering av data, da det gjør at dataene også er lett tilgjengelige, håndterbare og oppdaterte. Imidlertid krever disse databasene et styringssystem for at de skal kunne utføre disse oppgavene. For det meste blir språket SQL brukt til å utføre operasjoner i en database, men når applikasjonen din vokser og blir mer kompleks, blir det ekstremt vanskelig å ha en ide om hva hver operasjon gjør. Det er her teknikken Object Relational Mapping (ORM) kommer inn i bildet. Dette muliggjør spørring og manipulering av dataene ved hjelp av et objektorientert programmeringsspråk du ønsker. ORM-er reduserer kodenes kompleksitet og gjør den mer forståelig, noe som igjen gjør det lettere å oppdatere, vedlikeholde og gjenbruke koden.

I denne artikkelen vil vi ta en titt på Django ORM, som er en Python-basert ORM og derfor en av de mest populære teknologiene som brukes i disse dager.

Hva er Django?

Før vi går videre til å se på ORM av Django, la oss først se hva denne pythoniske teknologien som heter Django egentlig er.

Django er et gratis nettverk med åpen kildekode designet i Python, og har derfor et veldig rent og pent design sammen med at det er enkelt, fleksibelt, pålitelig og skalerbart. Det gjør ting ekstremt enkelt for webutviklere, da det gir brukere ferdige komponenter som igjen hindrer dem i å skrive alt fra bunnen av, og som et resultat gjør arbeidet sitt raskere og reduserer kostnadene på nettstedet. I tillegg til dette er det ekstremt sikkert og hjelper brukere med å unngå sikkerhetsproblemer som UI-oppreisningsangrep, SQL-injeksjoner, og så videre. Det har også et ekstremt stort samfunn som alltid er tilgjengelig gjennom fora og alltid klar til å tilby sin hjelp til andre.

La oss nå endelig se på Django ORM og noen av hovedfunksjonene.

Åpne Django ORM

Etter å ha installert Django og konfigurert prosjektet, får vi vanligvis følgende innledende filer:

mysite her refererer til navnet på prosjektet du opprettet. Alle disse filene har sine egne bruksområder, og det er viktig at man trenger å vite hvilken rolle hver fil spiller. Fokuset vårt her kommer til å være på ledelsen.py-fil som skal kontrollere mange forskjellige ting for oss, for eksempel å sette opp en server, gjøre migrasjoner, kommunisere med en database, samt gå inn i ORM-modus.

For å åpne Django ORM, åpne en kommandolinje fra hovedkatalogen til Django-prosjektet og kjør følgende kommando:

$ python administrere.py skall

Dette åpner et interaktivt skall for oss som lar oss begynne å samhandle med databasen ved hjelp av ORM.

Manipulere database ved hjelp av spørringer i Django ORM

Siden ORM tillater oss å samhandle med databasen, kan vi nå skrive forskjellige spørsmål for å hente og manipulere dataene fra databasen. Før vi kan begynne å jobbe med databasen i skallet, må vi imidlertid først importere alle modellene som er tilknyttet den. Dette kan gjøres ved å kjøre en kommando i det interaktive skallet, som vist nedenfor:

$ fra appName.modeller importerer modellnavn

Over her refererer appName til navnet på appen din som du har opprettet, og derav hvor modellene dine er lagret. ModelName refererer til navnet på modellen du vil importere og bruke. Du kan få importert flere modeller her, som vist i eksemplet nedenfor:

Nå kan du få tilgang til modellobjektet og lese data fra det. Hvis vi for eksempel vil ha listen over alle innleggene, kan vi ganske enkelt få dem ved å kjøre følgende kommando i terminalen vår:

$ Innlegg.gjenstander.alle()

Følgende er resultatet av kommandoen ovenfor:

Vi kan gjøre flere andre slags ting i ORM, som å lage nye databasedata, oppdatere dataene og alle de andre databasekommandoer du kan.

Databasemodellering

En av de beste tingene som Django ORM gir brukerne, er muligheten til automatisk å koble til og etablere relasjoner mellom attributtene til modellobjektet og de tilsvarende tabellfeltene. I databaser eksisterer hovedsakelig tre typer relasjoner. Dette er forholdet mellom en, det en-til-mange eller mange-til-en-forholdet, og det mange-til-mange-forholdet.

Et en-til-en-forhold er, som navnet antyder, der posten til en tabell tilsvarer en enkelt post av en annen tabell. I Django ORM kan vi enkelt etablere dette slik:

klasse Forelder (modeller.Modell):
bruker = modeller.OneToOneField (
Bruker,
on_delete = modeller.CASCADE,
primær_nøkkel = Sant,
)
name_of_father = modeller.CharField (max_length = 100)
navn_mor = modeller.CharField (max_length = 100)

Her borte kan hver bruker bare ha enslige biologiske foreldre, og derfor er det et en-til-en forhold. Nå, hvis vi sletter noen brukere som har tilgang til denne modellen, vil den også slette modellen til 2nd bruker siden de er avhengige av hverandre.

En-til-mange eller mange-til-en refererer til et forhold der en foreldrepost kan ha flere underordnede poster, men den kan bare ha ett eller ingen barn også. I Django ORM kan vi enkelt etablere dette forholdet ved hjelp av ForeignKey felt:

klasse Kunde (modeller.Modell):
navn = modeller.CharField (max_length = 255)
klasse Kjøretøy (modeller.Modell):
kunde = modeller.ForeignKey (
Kunde,
on_delete = modeller.CASCADE
)

Som det fremgår av koden ovenfor, kan en kunde ha flere biler.

Til slutt definerer mange-til-mange-forhold et forhold der flere tabeller kan relateres til hverandre. Vi kan lage dette ved hjelp av Mange felt. I eksemplet nedenfor har vi laget to modeller, en for brukeren og den andre for innleggene deres. Det kan også være flere brukere siden hver bruker kan ha flere innlegg.

klasse Bruker (modeller.Modell):
post = modeller.ManyToManyField (Post, blank = True)
venner = modeller.ManyToManyField (innstillinger.AUTH_USER_MODEL, blank = True)
klasse Post (modeller.Modell):
post = modeller.Tekstfelt()
liker = modeller.ManyToManyField (innstillinger.AUTH_USER_MODEL, blank = True, related_name = 'user_likes')

Konklusjon

Django ORM er et ekstremt kraftig verktøy og har gjort arbeidet til webutviklere så mye lettere. Den har en rekke funksjoner som manipulering av databasemodeller, etablering av et forhold mellom modellene og så mye mer. I et nøtteskall er Django ORM en av de beste tingene som følger med Django, og er svært effektiv på jobben den får.

Hvordan bruke GameConqueror Cheat Engine i Linux
Artikkelen dekker en guide om bruk av GameConqueror-juksemotoren i Linux. Mange brukere som spiller spill på Windows bruker ofte "Cheat Engine" -appli...
Beste spillkonsollemulatorer for Linux
Denne artikkelen vil liste opp populære programvare for spillkonsollemulering tilgjengelig for Linux. Emulation er et programvarekompatibilitetslag so...
Beste Linux Distros for spill i 2021
Linux-operativsystemet har kommet langt fra det originale, enkle, serverbaserte utseendet. Dette operativsystemet har forbedret seg enormt de siste år...