Tietoja pullosta
Flask on Python-pohjainen verkkosovelluskehys, joka on erityisesti suunniteltu olemaan vähäinen alkuun pääsemiseksi. Tämä auttaa nopeaa prototyyppien tekemistä, nopeaa kehitystä ja nopeaa käyttöönottoa. Kaikki lisäominaisuudet, jotka sinun on lisättävä verkkosovellukseen, voidaan lisätä laajennusten kautta. Pullon virallinen sivusto kuvaa itseään "mikrokehykseksi", koska se jättää kaikki tärkeimmät päätökset käyttäjien itselleen ja tekee vähän heidän puolestaan. Käyttäjät voivat valita omat mallimoottorinsa, tietokannan hallinnan kirjastot, lomakkeiden validointityökalut ja niin edelleen, vaikka pullossa on joitain järkeviä oletusasetuksia.
Pullon asentaminen Linuxiin
Jos käytät Ubuntua, voit asentaa pullon suorittamalla alla mainitun komennon:
$ sudo apt asenna python3-pulloVoit välttää arkistoversiota ja asentaa pullon uusimman version pip-paketinhallinnasta suorittamalla seuraavat kaksi komentoa peräkkäin:
$ sudo apt asenna python3-pipAsenna pullo $ pip3
Jos käytät muuta Linux-jakelua, etsi ”Flask” -paketit paketinhallinnasta tai asenna se “pip” -paketinasennustyökalusta. Tarkemmat ohjeet ovat täällä.
Kun asennus on valmis, voit tarkistaa pullon version alla määritetyllä komennolla:
$ python3 -c "tuontipullo; tulosta (pullo.__versio__)"Asiakas-palvelin-malli
Kuten aiemmin todettiin, pulloa käytetään verkkosovellusten kehittämiseen. Yleensä kaikki Pythonin ja muiden ohjelmointikielien verkkosovelluskehykset käyttävät asiakas-palvelin-arkkitehtuuria. Pullo käyttää myös asiakas-palvelin-mallia, jossa käyttäjät voivat kirjoittaa palvelinpuolen logiikkaa luodakseen verkkosovelluksia tai verkkosivustoja. "Asiakas" viittaa tässä verkkoselaimeen tai mihin tahansa muuhun sovellukseen, joka sallii verkkosivujen hahmontamisen HTML-, JavaScript- ja CSS-tekniikoilla. Vaikka "palvelin" viittaa paikalliseen tai etäpalvelimeen, jossa Python-kielellä kirjoitettu Flask-sovelluksesi suoritetaan.
Kun suoritat Pullo-sovelluksen paikallisesti tietokoneellasi, paikallispalvelin luodaan automaattisesti palvelemaan verkkosovellusta. Pullo tuottaa terminaalissasi paikallisen isännän URL-osoitteen. Voit käydä tässä URL-osoitteessa millä tahansa verkkoselaimella nähdäksesi lopputuloksen. Voit myös asettaa etäpalvelimen helpottamaan asiakkaan ja palvelimen välistä viestintää ja käynnistää oman julkisen verkkosivustosi tai verkkosovelluksesi.
Voit luoda verkkosovelluksellesi tarvittavan asiakaspuolen HTML-, JavaScript- ja CSS-koodin käyttämällä palvelinpuolen koodia, joka on kirjoitettu pulloon ja Pythoniin. Mutta kun verkkosovellus on otettu käyttöön ja suoritat sen verkkoselaimessa, verkkosovelluksesi ei näe tai ymmärrä Python-koodia. Se käsittelee vain HTML-, JavaScript- ja CSS-tiedostoja, koska verkkoselaimet tukevat pääasiassa vain näitä tekniikoita. Pystyt silti kommunikoimaan palvelimen kanssa asiakaspuolelta HTTP-pyyntöjen avulla. Voit siirtää dataa asiakkaalta palvelimelle, käsitellä sitä jonkin palvelinpuolen logiikan avulla ja palauttaa tuloksen.
Joten kehittämästäsi verkkosovelluksesta riippuen saatat joutua päättämään, missä logiikka toteutetaan: palvelin- tai asiakaspuolella tapauskohtaisesti.
Yksinkertainen Hello World -sovellus pullossa
Voit käyttää alla olevaa koodinäytettä luomaan yksinkertaisen "Hello World" -sovelluksen pulloon aloittaaksesi:
pullosta tuontipulloapp = pullo (__ nimi__)
@sovellus.reitti('/')
def hello_world_app ():
message = "Hei maailma!!"
palautusviesti
Edellä olevan koodinäytteen ensimmäinen käsky tuo ”Pullo” -luokan ”pullon” moduulista. Tuonnin jälkeen voit käyttää kaikkia “Pullo” -luokan käytettävissä olevia menetelmiä.
Seuraavassa lauseessa luodaan uusi “Flask” -luokan esiintymä ja tiedoston nimi toimitetaan sille argumenttina. Jos käytät vain yhtä.py-tiedosto ilman ylimääräistä “__init__”.py ”-tiedosto, jota käytetään tyypillisesti luodessaan tiedostorakennetta Python-paketille, nimen kovakoodattu arvo on” __main__ ”. "__Name__"-argumentti kertoo Pullolle, mistä etsiä tiedostoja, jotka liittyvät nykyiseen suoritettavaan pullosovellukseen. Voit myös toimittaa oman mukautetun polun päälasitiedostoon __nimi__-argumentin sijaan. Mutta tyypillisesti useimmat kehittäjät käyttävät vain nimeä __name__ ja tämä näyttää olevan tavanomainen käytäntö.
Seuraavaksi “koristelu” -sovellus.reitti ”on liitetty toimintoon” hello_world_app ”. Sisustusfunktiot laajentavat tai muokkaavat toimintoa, johon ne on liitetty, muuttamatta niitä itse. Tässä, ”sovellus.reitti ”sisustajaa käytetään määrittämään URL-polku, johon liitetty toiminto suoritetaan. Symboli “/” käskee pulloa suorittamaan toiminnon ”/” URL-osoitteessa, joka tarkoittaa ”root” -verkkotunnusta tai “root” URL-osoitetta. Esimerkiksi, jos sovelluksesi URL-osoite on ”sovellus.com ”, toiminto käynnistyy sovellukselle.fi ”URL. Voit vaihtaa sen myös muuksi. Esimerkiksi käyttämällä sisustajaa "@app.reitti ('/ helloworld') ', voit kartoittaa toiminnon "app.com / helloworld ”URL.
Lopuksi toimintoa "hello_world_app" käytetään palauttamaan sisältö, jonka haluat näyttää verkkoselaimessa, kun verkkosovelluksesi on käynnissä.
Suorita pullo-sovellus
Jos haluat suorittaa Flask-sovelluksen Linuxissa, sinun on suoritettava komento seuraavassa muodossa:
$ export FLASK_APP = main.py$ pullo suoritetaan
Vaihda “main”.py ”nimi tarpeen mukaan vastaamaan sitä omaan .”Py” -tiedosto, johon olet kirjoittanut pullokoodisi. Toinen komento suorittaa Pullo-sovelluksesi. Voit suorittaa myös tämän vaihtoehtoisen komennon:
$ FLASK_APP = tärkein.pyöritetäänKun olet suorittanut nämä komennot, sinun pitäisi nähdä tällainen lähtö:
Avaa vain terminaalissa mainittu URL-osoite verkkoselaimessa, jotta näet sovelluksesi toiminnassa.
Voit suorittaa Flask-sovelluksen virheenkorjaustilassa käyttämällä ”FLASK_ENV” -ymuuttujaa seuraavassa muodossa:
$ FLASK_ENV = kehitys FLASK_APP = tärkein.pyöritetäänJinja2-mallimoottorin käyttö
Pullo käyttää “Jinja2” mallipohjaa moottorin helpottamiseksi HTML-koodin kirjoittamista Pythonissa. Voit käyttää sitä asettamaan merkinnän “Hello World!!”-Viesti.
Luo uusi hakemisto nimeltä "templates", jossa päälaskentakomentosi sijaitsee. Luo "template" -hakemiston sisällä uusi tiedosto nimeltä "hw_template".html ”. Avaa “hw_template.html ”-tiedosto ja laita siihen seuraava koodi:
% jos väri%
Hei maailma!!
% muu%
Hei maailma!!
% loppu Jos %
Tämä koodi on kirjoitettu syntaksissa, jonka ”Jinja2” ymmärtää. Voit tutustua täältä saataviin ”Jinja2” -dokumentaatioihin. Mallin merkintä tarkistaa, onko muuttuja nimeltä "väri" siirretty sille vai ei. Jos kyllä, niin se muuttaa “Hello World!!”-Viesti käyttäen sille välitetyn“ color ”-muuttujan arvoa.
Jos haluat siirtää muuttujan Jinja2-malliin, sinun on kirjoitettava koodi seuraavassa muodossa:
@sovellus.reitti('/')def hello_world_app ():
return render_template ('hw_template.html ', color = "punainen")
"Render_template" -menetelmää käytetään merkintöjen renderöintiin "Jinja2" -mallitiedostosta. Voit antaa sille renderöidyn mallin nimen ja kaikki argumentit, jotka haluat välittää mallille. "Hw_template.Edellä käytetty html-malli käsittelee "väri" -muuttujan sen jälkeen, kun pullokoodi on välittänyt sille "väri" -muuttujan, jonka arvo on "punainen". Kun olet suorittanut yllä mainitun koodinäytteen, sinun pitäisi saada seuraava tulos:
Voit myös välittää muuttujien arvot itse URL-osoitteesta. Katso alla oleva koodinäyte:
@sovellus.reitti('/')@sovellus.reitti('/
def hello_world_app (väri = "sininen"):
return render_template ('hw_template.html ', väri = väri)
"Hello_world_app" -toimintoon on liitetty kaksi URL-polkua tai reittiä. Kun käyt juurialueella (esimerkki “sovellus.com ”), näet“ Hello World!!”Sininen-viesti” väri ”-muuttujan oletusarvona määritetään” siniseksi ”ja tämä on arvo, jonka välität myös” Jinja2 ”-mallille.
Toinen polku, jonka määrittelee “@app.reitti('/
Esimerkiksi: “Hei maailma !!-Viesti muuttuu punaiseksi, kun vierailet sovelluksessa.com / red ”URL, mutta se pysyy sinisenä, kun käyt sovelluksessa.fi ”URL. Tässä on vierekkäinen vertailu:
Johtopäätös
Pullo on tehokas verkkosovelluskehys, jota voidaan käyttää sekä yksinkertaisten että edistyneiden sovellusten luomiseen. Tässä opetusohjelmassa selitetään pääasiassa yksinkertaisen “Hello World!!" sovellus. Voit liittää sen tietokantaan ja laajennusten avulla laajentaa sen toimintoja edelleen. Katso pullo-ohjeista lisätietoja tietokantojen ja laajennusten hallinnasta.