Django - Attributter og klasseerklæring

Indholdsfortegnelse
Django håndterer den deklarative måde at indstille de klasser, den vil bruge, betyder det, at vi kan oprette modeller ud fra metaklasser allerede defineret, som vi kan opnå grundlæggende og avancerede funktioner ved blot at lave en brugerdefineret klasse, dette takket være alle de værktøjer, der er indarbejdet i ramme.
Et af de punkter, der måske er tilbage for os, er, hvordan man ved, hvordan rammen gør tingene, det vil sige i hvilken rækkefølge den erklærer de attributter, vi placerer i klasserne.
Sortering af klasseattributter
Når vi bruger den deklarative syntaks, som vi har tilgængelig i Django, kan der opstå et forvirringspunkt, og dette er rækkefølgen, hvor de deklarerede værdier er tildelt, årsagen til dette er det Python håndterer sine ordbøger på en rodet måde; Normalt ville dette ikke repræsentere et stort problem, men når vi håndterer navneområder eller navnerum, hvis vi skal lave en bestemt iteration på attributterne, er det vigtigt at kende den rækkefølge, værdierne blev tildelt, da vi ikke ville have en hindring.
For at have fuld kontrol over vores applikation kan vi på en eller anden måde vide, hvilken rækkefølge værdierne tildeles, og dermed undgå at skulle tildele en vilkårlig ordre.
For at opnå denne rækkefølge er det, vi kan gøre, at hver attribut i sig selv bærer et spor af sin position i sekvensen, for dette skal vi få vores klasser til at arve fra en basisklasse, der kan tælle, hvor mange gange klassen er instantieret og dermed tildele et korrelativt nummer til hver af dem:
 klasse BaseAttribute (objekt): creation_counter = 1 def __init __ (self): self.creation_counter = BaseAttribute.creation_counter BaseAttribute.creation_counter + = 1 

Vi ser følgende i kodeeksemplet:
Hver forekomst af Objekt have en navnerum eller et andet navnerum end klasserne, så hver af instanserne i denne klasse vil have en oprettelsestæller, som vi kan bruge til at sortere objekterne efter den rækkefølge, de blev instantieret i.
Dette er måske ikke den eneste løsning på problemet, men det er måden, hvorpå Django sorterer felterne til modeller og former.
Som vi ser, var problemet bare et eksempel på, hvordan Django som en ramme håndterer den klasser og deres indhold ved hjælp af Python -ressourcer.
Klasseerklæring
Med alle de klasser, vi har i et modul, er det lige så enkelt at oprette en applikativ klasse som at definere en underklasse og tilføje dens attributter.
De forskellige eksisterende rammer vil have forskellige navne til klassens attributter og vil endda have forskellige krav til, hvordan klasserne kræves eller den form og kombinationer, de skal anvendes i, det kan nå det punkt at have reserverede navne, der kunne forårsage konflikter, hvis der oprettes en attribut med dette navn. Disse problemer er sjældne, da vi ved god praksis skal undgå denne type situation i udviklingen af ​​nye rammer; den generelle regel er at give udviklerne størst mulig fleksibilitet, med dette opnår vi, at rammerne ikke er en hindring i stedet for en hjælp.
I det følgende billede vil vi se, hvordan klassen erklæres Kontakt i en applikation i Django:

FORSTØRRE

Med denne simple kode er det nok for os at lade rammen overføre et stort antal funktionaliteter til vores model, uden at det er nødvendigt at udvikleren skal tilføje dem manuelt.
En anden ting at huske er, at dette er kode Python, så vi bør ikke føle os begrænsede, da praktisk talt enhver gyldig kode i Python hjælper os med at udvide vores klasser.Kan du lide og hjælpe denne vejledning?Du kan belønne forfatteren ved at trykke på denne knap for at give ham et positivt punkt

Du vil bidrage til udviklingen af ​​hjemmesiden, at dele siden med dine venner

wave wave wave wave wave