Apie kolbą
„Flask“ yra „Python“ pagrindu sukurta žiniatinklio programų kūrimo sistema, specialiai sukurta taip, kad būtų kuo mažiau pradėti. Tai padeda greitai kurti prototipus, greitai kurti ir greitai įdiegti. Bet kokias išplėstines funkcijas, kurias turite pridėti prie savo žiniatinklio programos, galima pridėti naudojant plėtinius. Oficiali „Flask“ svetainė save apibūdina kaip „mikro“ sistemą, nes visi svarbiausi sprendimai paliekami patiems vartotojams ir jų vardu sprendžiami nedaug. Vartotojai gali pasirinkti savo šablonų variklius, duomenų bazių valdymo bibliotekas, formų patvirtinimo įrankius ir pan., Nors kolba turi keletą protingų numatytųjų.
Kolbos diegimas „Linux“
Jei naudojate „Ubuntu“, galite įdiegti kolbą vykdydami žemiau nurodytą komandą:
$ sudo apt įdiekite python3-kolbąGalite išvengti saugyklos versijos ir įdiegti naujausią kolbos versiją iš „pip“ paketų tvarkyklės vykdydami šias dvi komandas iš eilės:
$ sudo apt įdiekite python3-pip$ pip3 kolba
Jei naudojate bet kurį kitą „Linux“ paskirstymą, paketų tvarkyklėje ieškokite „Flask“ paketų arba įdiekite juos iš „pip“ paketų diegimo įrankio. Daugiau išsamių instrukcijų galite rasti čia.
Baigę diegimą, galite patikrinti kolbos versiją naudodami toliau nurodytą komandą:
$ python3 -c "importavimo kolba; spausdinti (kolba.__versija__) "Kliento-serverio modelis
Kaip minėta anksčiau, kolba naudojama kuriant žiniatinklio programas. Paprastai visose žiniatinklio programų kūrimo sistemose „Python“ ir kitose programavimo kalbose naudojama kliento-serverio architektūra. Kolba taip pat naudoja kliento-serverio modelį, kuriame vartotojai gali rašyti serverio logiką kurdami žiniatinklio programas ar svetaines. Čia „klientas“ reiškia interneto naršyklę ar bet kurią kitą programą, leidžiančią pateikti tinklalapius naudojant HTML, „JavaScript“ ir CSS technologijas. Nors „serveris“ reiškia vietinį arba nuotolinį serverį, kuriame vykdoma jūsų „Python“ kalba parašyta „Flask“ programa.
Kai kompiuteryje paleidžiate „Flask“ programą vietoje, automatiškai sukuriamas vietinis serveris, skirtas aptarnauti žiniatinklio programą. Kolba jūsų terminale pateiks vietinio serverio URL. Galite peržiūrėti šį URL bet kurioje žiniatinklio naršyklėje ir peržiūrėti galutinį rezultatą. Taip pat galite nustatyti nuotolinį serverį, kad palengvintumėte ryšį tarp kliento ir serverio, ir paleiskite savo viešą svetainę ar žiniatinklio programą.
Galite sukurti kliento HTML, „JavaScript“ ir CSS kodą, reikalingą jūsų internetinei programai, naudodami serverio pusės kodą, parašytą kolba ir „Python“. Bet kai žiniatinklio programa bus įdiegta ir ją paleisite žiniatinklio naršyklėje, jūsų žiniatinklio programa nematys ir nesupras „Python“ kodo. Jis apdoros tik HTML, „JavaScript“ ir CSS, nes tik šias technologijas daugiausia palaiko žiniatinklio naršyklės. Jūs vis tiek galėsite bendrauti su serveriu iš kliento pusės naudodami HTTP užklausas. Galite labai daug perduoti duomenis iš kliento į serverį, juos apdoroti naudodamiesi serverio logika ir grąžinti rezultatą.
Taigi, atsižvelgiant į jūsų kuriamos žiniatinklio programos tipą, gali tekti nuspręsti, kur įdiegti logiką: serverio ar kliento atveju kiekvienu atveju atskirai.
Paprasta „Hello World“ programa kolboje
Norėdami pradėti, naudokite toliau pateiktą kodo pavyzdį, kad sukurtumėte supaprastintą „Hello World“ programą kolboje:
iš kolbos importo kolbaapp = kolba (__ vardas__)
@app.maršrutas ('/')
def hello_world_app ():
message = "Sveikas pasauli!!"
grąžinimo pranešimas
Pirmasis minėto kodo pavyzdžio teiginys importuoja „Kolbos“ klasę iš „kolbos“ modulio. Kai importuosite, galėsite naudoti visus „Kolbos“ klasės metodus.
Kitame sakinyje sukuriamas naujas „Flask“ klasės egzempliorius ir failo pavadinimas pateikiamas kaip argumentas. Jei naudojate tik vieną.py “failas be papildomo„ __init__ “.py “failas, paprastai naudojamas kuriant„ Python “paketo failų struktūrą, pavadinimo reikšmė bus„ hard_coded “„ __main__ “. Argumentas „__name__“ nurodo kolbai, kur ieškoti failų, susijusių su šiuo metu vykdoma kolbos programa. Taip pat galite pateikti savo pasirinktą kelią į pagrindinį kolbos failą, užuot pateikę argumentą „__name__“. Tačiau paprastai dauguma kūrėjų naudoja tik „__name__“ ir atrodo, kad tai įprasta praktika.
Tada „dekoravimo“ programa.maršrutas “pridedamas prie funkcijos„ hello_world_app “. Dekoravimo funkcijos išplečia arba modifikuoja funkciją, prie kurios jie yra prijungti, iš tikrųjų jų nekeisdami. Čia „programa.maršrutas “dekoratorius naudojamas nurodyti URL kelią, kuriame veiks pridedama funkcija. Simbolis „/“ liepia kolbai vykdyti funkciją „/“ URL, kuris reiškia „šaknies“ domeną arba „šaknies“ URL. Pavyzdžiui, jei jūsų programos URL yra „programa.com “, funkcija bus suaktyvinta„ app.com “URL. Taip pat galite jį pakeisti kitu. Pavyzdžiui, naudojant dekoratorių „@app.route ('/ helloworld') “, funkciją galite susieti su„ app.com / helloworld “URL.
Galiausiai funkcija „hello_world_app“ naudojama norint grąžinti turinį, kurį norite rodyti žiniatinklio naršyklėje, kai veikia jūsų žiniatinklio programa.
Kolbos programos paleidimas
Norėdami paleisti kolbos programą „Linux“, turite paleisti komandą tokiu formatu:
$ eksportuoti FLASK_APP = pagrindinis.py$ kolba paleista
Keisti „main.py “pavadinimą, jei reikia, kad jis atitiktų jūsų .„Py“ failą, kuriame parašėte savo kolbos kodą. Antroji komanda paleidžia jūsų kolbos programą. Taip pat galite paleisti šią alternatyvią komandą:
$ FLASK_APP = pagrindinis.py kolba paleistaPaleidus šias komandas, turėtumėte pamatyti tokį išėjimą:
Tiesiog atidarykite terminale nurodytą URL žiniatinklio naršyklėje, kad pamatytumėte, kaip jūsų programa veikia.
„Flask“ programą galite paleisti derinimo režimu naudodami aplinkos formatą „FLASK_ENV“ tokiu formatu:
$ FLASK_ENV = plėtra FLASK_APP = pagrindinis.paleisti kolbąNaudojant „Jinja2“ šablonų variklį
Kolba naudoja „Jinja2“ šablonui kurti, kad būtų lengviau rašyti HTML kodą „Python“. Juo galite nustatyti žymėjimą „Sveikas pasaulis!!“Pranešimą.
Sukurkite naują katalogą, vadinamą „šablonais“, kuriame yra jūsų pagrindinis „Flask“ scenarijus. „Šablono“ kataloge sukurkite naują failą pavadinimu „hw_template“.html “. Atidarykite „hw_template.html “failą ir įdėkite šį kodą:
% jei spalva%
Labas pasauli!!
% Kitas %
Labas pasauli!!
% endif%
Šis kodas parašytas sintakse, kurią supranta „Jinja2“. Čia galite rasti „Jinja2“ dokumentaciją. Šablono žymėjimas tikrina, ar jam buvo perduotas kintamasis, pavadintas „spalva“. Jei taip, tada pakeičiama „Sveiko pasaulio!!“, Naudojant jam perduoto kintamojo„ color “vertę.
Norėdami perduoti kintamąjį „Jinja2“ šablonui, turite parašyti kodą tokiu formatu:
@app.maršrutas ('/')def labas_pasaulis_appas ():
grąžinti render_template ('hw_template.html ', color = "raudona")
Metodas „render_template“ naudojamas žymėti iš „Jinja2“ šablono failo. Galite pateikti šablono, kurį norite pateikti, pavadinimą ir visus argumentus, kuriuos norite perduoti šablonui. „Hw_template.Aukščiau naudojamas šablonas html apdoroja „spalvos“ kintamąjį, kol kolbos kodas perduoda „spalvos“ kintamąjį, kurio vertė yra „raudona“. Paleidus pirmiau minėtą kodo pavyzdį, turėtumėte gauti tokį rezultatą:
Taip pat galite perduoti kintamas vertes iš paties URL. Pažvelkite į toliau pateiktą kodo pavyzdį:
@app.maršrutas ('/')@app.maršrutas ('/
def labas_pasaulio_appas (spalva = "mėlyna"):
grąžinti render_template ('hw_template.html ', spalva = spalva)
Prie funkcijos „hello_world_app“ pridedami du URL keliai arba maršrutai. Kai lankotės šakniniame domene (pavyzdys „programa.com “), pamatysite„ Hello World!!Pranešimas mėlyna spalva kaip numatytoji „spalvos“ kintamojo reikšmė apibrėžiama kaip „mėlyna“ ir tai yra vertė, kurią perduodate ir „Jinja2“ šablonui.
Antrasis kelias, apibrėžtas „@app.maršrutas ('/
Pavyzdžiui, „Sveikas pasaulis !!Pranešimas pasikeis į raudoną spalvą, kai lankysitės programoje.com / red “URL, bet jis liks mėlynas, kai lankysitės„ app.com “URL. Štai vienas kito palyginimas:
Išvada
Kolba yra galinga interneto programų kūrimo sistema, kurią galima naudoti kuriant tiek paprastas, tiek pažangesnes programas. Šioje pamokoje daugiausia paaiškinama, kaip sukurti paprastą „Hello World!!“Programa. Galite prijungti jį prie duomenų bazės ir naudoti plėtinius, kad dar labiau išplėstumėte jos funkcionalumą. Norėdami sužinoti daugiau apie duomenų bazių ir plėtinių valdymą, žr. „Kolbos“ dokumentaciją.