Mallien käyttö pullossa

{title}

Verkkosovellus vaatii käyttäjän näkemän osan, jota kutsutaan näkymäksi tai näkymäksi, ja se koostuu HTML- kirjoitetusta käyttöliittymästä, jonka avulla voimme näyttää staattisen ja dynaamisen datan käyttäjän polun mukaan.
Kun työskentelet mikrokehyksillä, kuten Flask, oletuksena ei ole tarpeen näyttää näkymää lisäelementeillä, vasta palauttamalla vastaava HTML- koodi voimme näyttää yhdenmukaisia ​​tietoja.
Ongelma syntyy, kun sovelluksemme alkaa kasvaa ja meillä on useita näkymiä, koodin toisto täyttää sovelluksemme elementeillä, joita voimme käyttää uudelleen, ja että manuaalinen tekeminen edustaa suurta työtä. Tämän ongelman välttämiseksi meillä on mallimoottorit, jotka auttavat meitä käyttämään HTML- tiedostoja uudelleen ja vähentämään siten koodin määrää lisäämällä ohjelman luettavuutta.

Jinja2


Jinja2 on kokonaan Pythoniin kirjoitettu mallimoottori, joka mallinnettiin Djangon mallimoottorista . Tämän avulla voimme sijoittaa osia HTML- koodia ja moottorin omaan koodiin sisällyttää tunnisteita, jotka sitten korvataan sovelluksemme tiedoilla.
Mitä muuta se sisältää?

Se sisältää myös omat toiminnot, jotka auttavat meitä muotoilemaan vastaanottamasi tiedot. Lisäksi käsitellään ehdollisia, päivämäärätoimintoja ja muita elementtejä, jotka auttavat meitä ohjelmoimaan mallin käyttäytymisen yksinkertaisella ja ilmeisellä tavalla.
Viimeisimmässä Flaskin versiossa tämä moottori sisältyy asennukseen, joten sen käyttö on helpompaa ja nopeampaa.

Luo näkymä vanhasta tavasta


Olimme sanoneet, että näkymän luominen Flaskissa oli yhtä helppoa kuin HTML- koodin tulostaminen halutun polun perusteella. Kuitenkin niille, jotka ovat tämän kehyksen uusia, tämä saattaa kuulostaa hyvin hämmentävältä.
Seuraavassa esimerkissä luomme näkymän, jossa saamme parametrin ja tulostamme sen tuloksena. Mielenkiintoista on, että käyttäjä voi syöttää tämän parametrin, joten näkymä on jossain määrin dynaaminen. Katsotaanpa koodia ja siirretään sitten selitykseen:
 pullosta tuotava Flaskapp = kolvi (__ nimi __) @ app.route ('/') @ app.route ('/ tervetuloa') @ app.route ('/ tervetullut /') def tervetullut (nimi = ei mitään): nimi = nimi tai 'Käyttäjä' palauttaa '' 'Tervetuloa!

Hei% s!

Tämä on näkemyksemme, joka tehtiin Flaskissa!

'' '% name __name__ ==' __main__ ': app.run ()
Tässä teemme jotain hyvin yksinkertaista: tuomme ensin kirjastot, jotka sisältävät kehyksen, sitten määrittelemme kolme keskeistä reittiä, ne kaikki vievät meidät samaan toimintoon, jota kutsutaan tervetulleiksi, ja vastaanottavat parametrin, joka on valinnainen, jos siinä tapauksessa, että et vain vastaanota sitä Sitä ei huomioida ohjelmassa.
Sitten toiminnossa luomme paluukäskymme ja ilmoitamme tässä, että merkkijono, joka sisältää näkymän HTML : n, palaa. Jos yritämme tätä ohjelmaa, saamme hyväksyttävän tuloksen selaimessa, katsotaanpa:

{title}

Monet saattavat sanoa, että tämä on erittäin toimiva, mutta mitä tapahtuu, jos haluamme sen sijaan, että näyttäisimme tyhjän sivun, haluamme integroida CSS-tyylit, JavaScript-tehosteet tai muut asiat. Sitten HTML-koodissamme olisi enemmän koodia, ja siksi kaikki olisi monimutkaista, mikä tekee sovelluksestasi helpon käsitellä.

Luo näkymä Jinja2: n avulla


Nyt luomme saman näkymän, mutta käyttämällä mallin moottoria, jota kuvasimme opetusohjelman alussa, saavuttaaksemme esimerkin, joka meidän on tehtävä eräillä valmisteluilla, nämä liittyvät projektimme rakenteeseen, koska jos aiomme käyttää mallitiedostoja On parasta erottaa ne sovelluksista muissa kansioissa ja jakaa siten visuaalinen kerros loogisesta ja liiketoimintasääntökerroksesta.
Tämän tietäessä meidän on luotava kansio malleillemme, yleissopimuksia varten me kutsumme sitä malleiksi, mutta meillä on oltava myös muita asioita, esimerkiksi meillä on oltava kansio, joka toimii moduulina, ja kutsumme sitä nimeltä sen näkymän kanssa, jonka aiomme luoda, Lisäksi meillä on oltava joitain tiedostoja, seuraavassa kuvassa näemme koko rakenteen ja siirrymme sitten vastaavaan koodiin saadaksesi kaiken toimimaan.

{title}

Tiedoston sisältö

Ennen kuin siirrymme mallin luomiseen ja käyttöön, meidän on tarkasteltava tiedostojen sisältöä, joka tekee sovelluksestasi sujuvan, näemme jokaisen tiedoston lyhyesti, jotta emme tuhlaa paljon aikaa. On tärkeätä huomata, että tämä on ehdotettu rakenne, mutta Flask antaa jokaisen kehittäjän tehdä hänelle sopivan rakenteen tavoitteensa mukaan.

ejecutar.py


Tämä tiedosto antaa meille mahdollisuuden ajaa sovellusta, joten sen nimeä, sitä voidaan yleensä kutsua myös run.pyksi, mutta tämän oppaan tarkoituksiin laitamme nimen, joka on espanjankielisen yhteisön ymmärrettävämpi, tänne meidän on sijoitettava seuraava koodi:
 from flasko import appapp.run (debug = True) 

$config[ads_text6] not found

__init__.py


Tämä on tiedosto, joka on sovelluksen juuressa. On välttämätöntä pystyä selvittämään, mitä toteutetaan ja sen riippuvuudet. Tässä tiedostossa on myös määritelty, että käyttämämme tervetuliaiskansion Views.py- tiedosto aiotaan käyttää aiemmin nähtynä, sillä voi olla mikä tahansa nimi, mutta Views.py on yleissopimus, joka auttaa meitä ylläpitämään ystävällistä sovellusta, meidän on asetettava seuraava:
 pullosta tuotava Flaskapp = pullo (__ nimi __) tuoda flasko.welcome.views 

tervetuloa / __ init__.py


Tämän tiedoston on oltava tyhjä, koska tarvitsemme vain sen olemassaolon, jotta Flask tulkitsee tämän kansion olevan sovelluksemme moduuli.

Näkymän luominen


Koska meillä on sovelluksemme perustiedostot, on aika luoda näkymä ja käyttää mallia. Ensimmäinen asia, jonka teemme, on luoda näkymämme. Tämä on hyvin samanlainen kuin edellinen näkymä, mutta parantunut, tätä varten meidän on työskenneltävä Views.py- tiedostossa ja asetettava seuraava:
 pullon tuonnista render_template, requestfrom flasko Import ('/')@app.route('/welcome')def welcome_web (): name = request.args.get (' name ', ' User ') return render_template ('index.html', nimi = nimi) 
Ensimmäinen asia, jonka teemme, on kehysten tuoma kirjasto, joka antaa meille mahdollisuuden näyttää malleja ja kirjasto selainpyyntöjen käsittelemiseksi.
Sitten määrittelemme reitit, jotka aiheuttavat tämän näkymän näyttämisen, tässä tapauksessa se on juuri / ja myös silloin, kun sana tervetullut on asetettu.
Lopuksi määrittelemme tervetulotoimintomme, joka antaa nimimuuttujalle selaimen pyynnöstä saamansa parametrit, ja sitten palautetaan render_template- toiminto, tämä kutsuu mallia ja välittää nimimuuttujan parametreiksi, joissa myös ilmoitamme Mallin nimi.

Luo malli


On aika luoda malli, tämä on pohjimmiltaan tiedosto, jossa on HTML- sisältöä ja joissakin tunnisteissa, jotka auttavat meitä antamaan sille dynaamisuuden, muokattava tiedosto on mallit- kansiossa oleva index.html, katsokaamme käyttämämme koodi:
 Tervetuloa {{nimi}}

Hei {{nimi}}!

Käytämme pulloa!

Tämä koodi on yksinkertainen, teemme HTML-koodimme ja sitten mihin haluamme luodun sisällön näkyvän näkymässä, laitamme yksinkertaisesti kaksoisnäppäimet {{}} ja sisälle, parametrin nimi, tämä tekee, kun tämä sovellus suoritetaan, tämä arvo korvataan Halutun sisällön kanssa. Jos näemme seuraavassa kuvassa, ymmärrämme, kuinka parametrina välitetty nimi sijoitetaan URL-osoitteeseen:

$config[ads_text6] not found

{title}

Paitsi että voimme käyttää parametreja, voimme myös luoda Python- sanakirjoja, joiden tiedot tulevat pysyvyyslähteestä, kuten tietokannasta tai jotain vastaavaa, ja siten pystyä sijoittamaan vielä enemmän tietoa.
Eri malleja

Mielenkiintoinen asia tässä suhteessa on, että voimme leikkiä eri malleilla sovelluksemme eri osille. Tämä erottaa puhtaan esityskerroksen siitä, mitä todella ohjelmoimme, poistamalla HTML : n medialta, jonka voimme erottaa kahteen ryhmään ja toimia siten kunnolla Ilman sekaannusta.
Viimeistelemällä tämän opetusohjelman, olemme oppineet käyttämään malleja Flaskin kanssa tehdyissä sovelluksissa. Tämä työskentelytapa säästää meitä vaivaa ja koodin toistoa, varsinkin jos luottaamme Jinja2 : n viralliseen dokumentaatioon saadaksesi kaiken irti mallimoottorista. . On erittäin tärkeää luoda projektirakenne ja erottaa erityyppiset tiedostot, koska tällä tavoin ylläpidämme ystävällistä projektia loppupuolella kehitystiimiämme tai siinä tapauksessa, että haluamme lähettää sen GitHubin kaltaiseen koodiverkkoon jakaaksesi Yhteisön kanssa tehty työ.

$config[ads_text5] not found