Django - Attributen en klassenverklaring

Inhoudsopgave
Django behandelt de declaratieve manier om de klassen in te stellen die het zal gebruiken, dit betekent dat we modellen kunnen maken van metaklassen reeds gedefinieerd waarmee we basis- en geavanceerde functionaliteiten kunnen verkrijgen door gewoon een aangepaste klasse te maken, dit dankzij alle tools die in de kader.
Een van de punten die ons misschien nog rest, is hoe we moeten weten, de manier waarop het raamwerk dingen doet, dat wil zeggen, in welke volgorde het de attributen declareert die we in de klassen plaatsen.
Sorteerklasse-attributen
Wanneer we de declaratieve syntaxis gebruiken die we beschikbaar hebben in Django, kan er een punt van verwarring ontstaan ​​en dit is de volgorde waarin de aangegeven waarden worden toegekend, de reden hiervoor is dat Python gaat op een rommelige manier om met zijn woordenboeken; Normaal gesproken zou dit geen groot probleem zijn, maar bij het verwerken van naamruimten of naamruimten als we een bepaalde iteratie op de attributen moeten doen, is het belangrijk om de volgorde te weten waarin de waarden zijn toegewezen, omdat we geen obstakel.
Om volledige controle over onze applicatie te hebben, kunnen we op de een of andere manier weten wat de volgorde is waarin de waarden worden toegewezen, zodat we geen willekeurige volgorde hoeven toe te wijzen.
Om deze ordening te bereiken, kunnen we doen dat elk attribuut op zichzelf een spoor van zijn positie in de reeks draagt, hiervoor moeten we onze klassen erven van een basisklasse die kan tellen hoe vaak de klasse wordt geïnstantieerd en dus een correlatief nummer voor elk van hen:
 class BaseAttribute (object): creation_counter = 1 def __init __ (zelf): self.creation_counter = BaseAttribute.creation_counter BaseAttribute.creation_counter + = 1 

In het codevoorbeeld zien we het volgende:
elk exemplaar van Object heb een naamruimte of een andere naamruimte dan de klassen, dus elk van de instanties van deze klasse heeft een aanmaakteller die we kunnen gebruiken om de objecten te sorteren in de volgorde waarin ze zijn geïnstantieerd.
Dit is misschien niet de enige oplossing voor het gestelde probleem, maar het is wel de manier waarop: Django sorteert de velden voor modellen en formulieren.
Zoals we zien, was het probleem slechts een voorbeeld van hoe Django als een raamwerk behandelt het klassen en hun inhoud, met behulp van Python-bronnen.
Klasseverklaring
Met alle klassen die we in een module hebben, is het maken van een applicatieve klasse net zo eenvoudig als het definiëren van een subklasse en het toevoegen van zijn attributen.
De verschillende bestaande frameworks zullen verschillende namen hebben voor de attributen van de klasse, en zullen zelfs verschillende vereisten hebben voor hoe de klassen vereist zijn of de vorm en combinaties waarin ze moeten worden toegepast, het kan het punt bereiken van het hebben van gereserveerde namen die zouden kunnen conflicten veroorzaken als een attribuut met die naam wordt gemaakt. Deze problemen zijn zeldzaam omdat we door goede praktijken dit soort situaties moeten vermijden bij de ontwikkeling van een nieuw kader; de algemene regel is om de ontwikkelaars de grootst mogelijke flexibiliteit te geven, hiermee bereiken we dat het raamwerk geen obstakel is in plaats van een hulp.
In de volgende afbeelding zullen we zien hoe de klasse wordt gedeclareerd Contact in een applicatie in Django:

VERGROTEN

Met deze simpele code is het voor ons voldoende om het framework een groot aantal functionaliteiten naar ons model te laten sturen, zonder dat de ontwikkelaar deze handmatig hoeft toe te voegen.
Een ander ding om te onthouden is dat dit code is Python, dus we moeten ons niet beperkt voelen, aangezien praktisch elke geldige code in Python ons zal helpen onze klassen uit te breiden.Vond je deze Tutorial leuk en heb je eraan geholpen?Je kunt de auteur belonen door op deze knop te drukken om hem een ​​positief punt te geven
wave wave wave wave wave