Brug af skabeloner i kolbe

Indholdsfortegnelse
En webapplikation kræver en del, som brugeren kan se, som kaldes udsigt eller visning og består af en grænseflade, der er skrevet ind HTML der giver os mulighed for at vise statiske og dynamiske data i henhold til den sti, som brugeren får adgang til.
Når vi arbejder med mikrorammer som Kolbe, som standard er det ikke nødvendigt at vise visningen for at bruge yderligere elementer, kun returnere koden HTML tilsvarende kan vi opnå for at vise konsistente data.
Problemet opstår, når vores applikation begynder at vokse, og vi har flere visninger, gentagelsen af ​​koden fylder vores applikation med elementer, som vi kunne genbruge, og at det manuelt repræsenterer et større arbejde for os. For at undgå dette problem har vi skabelonmotorer, der hjælper os med at genbruge filerne HTML og dermed reducere mængden af ​​kode ud over at øge læsbarheden af ​​vores program.
Jinja2 er en skabelonmotor helt skrevet i Python og blev modelleret efter skabelonmotoren til Django, dette giver os mulighed for at placere dele af kode HTML og med motorens egen kode, inkluderer etiketter, der senere vil blive erstattet af data fra vores applikation.
Hvad indeholder det mere?Det indeholder også sine egne funktioner, der hjælper os med at formatere de data, vi modtager, ud over at håndtere betingelser, datofunktioner og andre elementer, der hjælper os med at programmere skabelonens adfærd på en enkel og udtryksfuld måde.
I den nyeste version af Kolbe Denne motor er inkluderet i installationen, så brugen er lettere og hurtigere.
Vi havde diskuteret at skabe en visning i Kolbe det var lige så enkelt som at udskrive koden HTML i den ønskede stifunktion, men for de nye i denne ramme kan dette lyde meget forvirrende.
I det følgende eksempel skal vi oprette en visning, hvor vi vil modtage en parameter og udskrive den i resultatet, det interessante er, at denne parameter kan indtastes af brugeren, så visningen er dynamisk til et bestemt punkt, lad os se koden, og så går vi videre til forklaringen:
 fra kolbeimport Flaskapp = Kolbe (__ navn __) @ app.route ('/') @ app.route ('/ velkommen') @ app.route ('/ velkommen/') def velkommen (navn = Ingen): navn = navn eller 'Bruger' retur '' 'Velkommen!

Dette er vores syn i Flask!

'' '% ifname __name__ ==' __main__ ': app.run ()
Her er det, vi gør, noget meget enkelt, først importerer vi de biblioteker, der indeholder ramme, så definerer vi tre vigtige ruter, alle fører dem til den samme funktion kaldet velkomst og modtager en parameter, der er valgfri, hvor hvis den ikke modtages, vil den simpelthen blive ignoreret inden for programmet.
Så i funktionen skaber vi vores instruktion Vend tilbage og her angiver vi, at a Snor indeholdende HTML for udsigten. Hvis vi tester dette program, får vi et acceptabelt resultat i browseren, lad os se:

Mange siger måske, at dette er meget funktionelt, men hvad sker der, hvis vi i stedet for at vise den tomme side ønsker at integrere CSS -stilarter, JavaScript -effekter eller andre ting. Så ville vores HTML tage mere kode, og derfor ville alt være alt for kompliceret, hvilket ville gøre vores applikation helvede til at håndtere.
Nu skal vi oprette den samme visning, men ved hjælp af skabelonmotoren, som vi har beskrevet i begyndelsen af ​​selvstudiet, for at opnå eksemplet skal vi lave nogle forberedelser, disse har at gøre med strukturen i vores projekt, da hvis vi er vil bruge skabelonfiler er det bedst at adskille dem fra applikationen til andre mapper og derved opdele vores visuelle lag fra forretningsreglerne og logiklaget.
Når vi ved dette, skal vi oprette en mappe til vores skabeloner, til konventionelle formål vil vi kalde det skabeloner, men vi skal også have andre ting, for eksempel skal vi have en mappe, der fungerer som et modul, og vi vil kalde det med navnet af den visning, vi skal skabe, Udover at vi skal have nogle filer, vil vi i det næste billede se den komplette struktur, og derefter vil vi gå til den relevante kode for at få alt til at fungere.

FilindholdInden vi går videre til generering og brug af skabelonen, skal vi se indholdet af de filer, der får vores applikation til at køre uden problemer, vi vil kort se hver fil for ikke at spilde meget tid. Det er vigtigt at bemærke, at dette imidlertid er en foreslået struktur Kolbe giver hver udvikler mulighed for at lave den struktur, der passer bedst til ham i henhold til sit mål.
Denne fil er den, der tillader os at køre applikationen, deraf dens navn, den kan generelt kaldes run.py Men i forbindelse med denne vejledning sætter vi et navn, der er mere forståeligt for det spansktalende samfund, her skal vi placere følgende kode:
 fra flasko import appapp.run (debug = True)

Dette er den fil, der er i roden af ​​applikationen, det er nødvendigt for at kunne fastslå, at den skal udføres og dens afhængigheder, i denne fil er det, hvor vi også definerer, at filen skal bruges views.py af velkomstmappen, som vi har set før, kan dette have et hvilket som helst navn, bortset fra views.py Det er en konvention, der vil hjælpe os med at opretholde en venlig applikation, her skal vi placere følgende:
 fra kolbe import Flaskapp = Kolbe (__ navn __) import flasko.bienvenido.views

Denne fil skal være tom, da vi kun har brug for, at den eksisterer, så Kolbe fortolke, at denne mappe er et modul i vores applikation.
Da vi har basisfilerne til vores applikation, er det tid til at oprette visningen og bruge skabelonen. Den første ting, vi vil gøre, er at oprette vores visning, dette vil meget lig den tidligere visning, men forbedret, for dette skal vi arbejde i filen views.py og placer følgende:
 fra kolbe import render_template, requestfrom flasko import [email protected] ('/') @ app.route ('/ welcome') def welcome_web (): name = request.args.get ('name', 'User') return render_template ('index.html', navn = navn)
Den første ting, vi gør, er fra rammerne at importere biblioteket, der giver os mulighed for at vise skabeloner og et bibliotek til behandling af browseranmodninger.
Derefter definerer vi de ruter, der får denne visning til at blive vist, i dette tilfælde er det roden / og også når ordet placeres Velkommen.
Endelig definerer vi vores funktion Velkommen som tildeler variabelnavnet de parametre, der er opnået fra browserforespørgslen, og derefter returnerer vi funktionen render_template, det er den, der vil kalde skabelonen og videregive variabelnavnet som parametre, hvor vi også angiver skabelonens navn.
Det er tid til at oprette skabelonen, dette er dybest set en fil med indhold HTML og med nogle tags, der hjælper os med at give den dynamik, er filen, der skal ændres, den index.html som er i mappen skabeloner, lad os se den kode, vi vil bruge:
 Velkommen {{name}}

Vi bruger Flask!

Denne kode er enkel, vi laver vores HTML grundlæggende, og hvor vi vil have det genererede indhold til at blive vist i visningen, placerer vi bare dobbelte seler {{}} og inde, parameterets navn, betyder det, at når applikationen udføres, erstattes denne værdi med det indhold, vi ønsker. Hvis vi ser i det følgende billede, vil vi indse, hvordan det navn, som vi sender som parameter via URL'en, placeres:

Ikke alene kan vi bruge parametre, vi kan også oprette ordbøger Python med data, der kommer fra en persistenskilde som en Database eller noget lignende og på denne måde at kunne placere endnu flere data.
Forskellige skabelonerDet interessante ved dette spørgsmål er, at vi kan lege med forskellige skabeloner til forskellige dele af vores applikation, dette adskiller det rene præsentationslag fra det, vi rent faktisk programmerer, ved at fjerne HTML fra midten kan vi adskille i to hold og dermed fungere ordentligt uden forvirring.
Med dette afslutter vi denne vejledning, vi har lært at bruge skabelonerne i applikationer lavet med Kolbe, denne måde at arbejde på vil spare os for kræfter og gentagelse af kode, især hvis vi er afhængige af den officielle dokumentation af Jinja2 for at få mest muligt ud af skabelonmotoren. Det er meget vigtigt at etablere en projektstruktur og adskille de forskellige filtyper, da vi på denne måde vil opretholde et venligt projekt for resten af ​​vores udviklingsteam eller i tilfælde af at vi vil uploade det til et kodenetværk som f.eks. GitHub for at dele det udførte arbejde med fællesskabet.
wave wave wave wave wave