Django - Op functies gebaseerde weergaven

Inhoudsopgave
Hoewel de term weergave op één manier kan worden geïnterpreteerd, is in Django Dit is niet het klassieke concept dat we ervoor gebruiken, bijvoorbeeld bij webprogrammering, vaak hangt het resultaat dat een weergave ons geeft af van de acties van de gebruiker, misschien werkt de gebruiker een vervolgkeuzelijst bij en verandert de totale betekenis van de weergave .
Als we proberen het concept 'view' vast te stellen, willen we niet proberen het te vergelijken met het concept dat we misschien vooraf hebben gedefinieerd in andere MVC-omgevingen, als we eenmaal het concept 'view of view' hebben. Django we kunnen het beter uitdrukken naar andere ontwikkelaars.
Het skelet van het zicht
Als we het lichaam van het aanzicht zien en we gaan naar de fundamenten ervan, kunnen we zeggen dat een aanzicht een functie is die een HTTP-verzoek aannemen Y retourneert een HTTP-antwoord, We zouden kunnen zeggen dat deze benadering eenvoudig is, maar als we het doel van de weergave zien, vervult dit concept het adequaat, nu we andere activiteiten moeten uitvoeren om de eenvoud van deze twee elementen te bereiken.
Algemene weergaven
de filosofie van Django vertelt ons dat we al het mogelijke moeten doen zodat onze applicaties herbruikbaar, eenvoudig en effectief zijn, wat betekent dat we geen repetitieve elementen kunnen ontwikkelen, dat wil zeggen, dezelfde code steeds opnieuw schrijven omdat het geen zin heeft, laten we eens kijken de volgende afbeelding:

In deze code zien we hoe we een functie bouwen, deze functie vertegenwoordigt ons een weergave, maar het is verre van een oplossing die voldoet aan de punten van de Django-filosofie, hoewel het waar is dat de code werkt en in veel gevallen het werk meer dan goed zou doen, laten we ons voorstellen dat in plaats van dat we alleen die weergave moeten doen, we 100 of 200 moeten doen omdat we een toepassing van grote proporties hebben, we zou deze logica steeds opnieuw moeten herhalen en hetzelfde type code genereren.
Als we kijken naar de naam van de weergave, de parameters die het aanroept, inclusief het antwoord dat het geeft, die verwijst naar een URL die vooraf is gedefinieerd door de ontwikkelaar, dit alles wijst ons op een specifieke en niet-generieke weergave.
Voordat we ons zorgen kunnen maken, heeft het raamwerk al een oplossing voor dit probleem en het is niets meer en niets minder dan de generieke weergaven, dit zijn views die al gedefinieerd zijn, we moeten alleen nog doe mee met een model, geef een sjabloon aan en we hebben toegang tot functies en methoden die alle basisfuncties uitvoeren die we nodig hebben.
Laten we de code hiervan eens bekijken generieke weergaven in de volgende afbeelding:

In het voorbeeld kunnen we verschillende interessante punten opmerken, eerst beperken we de functie niet tot een enkel model, we zien hoe we de functie gebruiken model.get_default_manager waarmee we vaststellen wat de primaire sleutel van ons model is, dan retourneren we de naam van de sjabloon die we eerst als argument van de functie hebben verkregen.
Hier hebben we geen beperking meer door code, omdat dit slechts één keer wordt gedaan en het omvat Django, we hoeven ons alleen maar zorgen te maken over de integratie van wat we gaan gebruiken, laten we eens kijken naar de implementatie van een weergave met deze aanpak:

In onze implementatie noemen we gewoon de functie show_object van de bekeken klasse, geven we aan welk model het zal gebruiken en de naam van het sjabloon, iets dat veel minder repetitief en eenvoudiger is dan de niet-generieke benadering die we in het begin zagen.
Zoals we kunnen zien, hebben we tools binnen het raamwerk die ons werk besparen en we kunnen ook voldoen aan een schone en efficiënte ontwikkelingsfilosofie door het aantal onnodige regels code dat we schrijven te verminderen.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

U zal helpen de ontwikkeling van de site, het delen van de pagina met je vrienden

wave wave wave wave wave