O bučki
Flask je okvir za razvoj spletnih aplikacij, ki temelji na Pythonu in je posebej zasnovan tako, da je minimalen za začetek. To pomaga pri hitrem prototipiranju, hitrem razvoju in hitri uvedbi. Vse napredne funkcije, ki jih morate dodati v svojo spletno aplikacijo, lahko dodate prek razširitev. Uradno spletno mesto Flask se opisuje kot "mikro" okvir, saj vse pomembne odločitve prepušča uporabnikom samim in se v njihovem imenu malo. Uporabniki lahko izberejo lastne mehanizme za predloge, knjižnice za upravljanje baz podatkov, orodja za preverjanje obrazcev in tako naprej, čeprav Flask prihaja z nekaterimi pametnimi privzetimi.
Namestitev Flaska v Linux
Če uporabljate Ubuntu, lahko Flask namestite tako, da izvedete spodnji ukaz:
$ sudo apt namestite python3-bučkoLahko se izognete uporabi različice repozitorija in namestite najnovejšo različico Flaska iz upravitelja paketov »pip«, tako da zaporedoma zaženete dva ukaza:
$ sudo apt namestite python3-pip$ pip3 namestitvena bučka
Če uporabljate katero koli drugo distribucijo Linuxa, poiščite pakete "Flask" v upravitelju paketov ali pa jih namestite v orodju za namestitev paketa "pip". Nadaljnja podrobna navodila so na voljo tukaj.
Ko je namestitev končana, lahko s spodnjim ukazom preverite različico bučke:
$ python3 -c "bučka za uvoz; print (bučka.__verzija__) "Model odjemalec-strežnik
Kot smo že omenili, se Flask uporablja za razvoj spletnih aplikacij. Običajno vsi okviri za razvoj spletnih aplikacij v Pythonu in drugih programskih jezikih uporabljajo arhitekturo odjemalec-strežnik. Flask uporablja tudi model odjemalca in strežnika, kjer lahko uporabniki pišejo logiko na strani strežnika za ustvarjanje spletnih aplikacij ali spletnih mest. Tu se "odjemalec" nanaša na spletni brskalnik ali katero koli drugo aplikacijo, ki omogoča upodabljanje spletnih strani z uporabo tehnologij HTML, JavaScript in CSS. Medtem ko se »strežnik« nanaša na lokalni ali oddaljeni strežnik, kjer se izvaja vaša aplikacija Flask, napisana v jeziku Python.
Ko lokalno zaženete aplikacijo Flask v računalniku, se samodejno ustvari lokalni strežnik, ki služi spletni aplikaciji. Bučka bo na vašem terminalu izdala URL lokalnega gostitelja. Ta URL lahko obiščete v katerem koli spletnem brskalniku in si ogledate končni rezultat. Lahko tudi nastavite oddaljeni strežnik za lažjo komunikacijo med odjemalcem in strežnikom ter zagon lastnega javnega spletnega mesta ali spletne aplikacije.
Z uporabo kode na strani strežnika, napisane v Flask in Python, lahko ustvarite kodo HTML, JavaScript in CSS na strani odjemalca. Ko pa je spletna aplikacija uvedena in jo zaženete v spletnem brskalniku, vaša spletna aplikacija ne bo videla ali razumela kode Python. Obdeloval bo le HTML, JavaScript in CSS, saj spletni brskalniki podpirajo samo te tehnologije. Še vedno boste lahko komunicirali s strežnikom s strani odjemalca z uporabo HTTP zahtev. Podatke lahko zelo prenašate od odjemalca do strežnika, jih obdelujete z uporabo neke logike na strani strežnika in vrnete rezultat.
Torej, odvisno od vrste spletne aplikacije, ki jo razvijate, se boste morda morali odločiti, kje boste implementirali logiko: na strani strežnika ali odjemalca za vsak primer posebej.
Enostavna aplikacija Hello World v bučki
Za začetek lahko s spodnjim vzorcem kode ustvarite poenostavljeno aplikacijo "Hello World" v Flasku:
iz bučke uvoz Bučkaapp = bučka (__ ime__)
@app.pot ('/')
def hello_world_app ():
message = "Pozdravljeni, svet!!"
vrni sporočilo
Prva izjava v zgornjem vzorcu kode uvozi razred "Flask" iz modula "flask". Po uvozu boste lahko uporabili vse metode, ki so na voljo v razredu "Bučka".
V naslednjem stavku se ustvari nov primerek razreda "Flask" in mu se kot argument navede ime datoteke. Če uporabljate samo en.py "brez dodatne" __init__.Datoteka py ", ki se običajno uporablja pri ustvarjanju strukture datoteke za paket Python, ime bo imelo trdo kodirano vrednost" __main__ ". Argument "__name__" pove Flasku, kje naj išče datoteke, povezane s trenutno aplikacijo bučke, ki se izvaja. Namesto da navedete argument »__name__«, lahko v svojo glavno datoteko bučke vnesete tudi lastno pot po meri. Toda običajno večina razvijalcev uporablja samo __name__ in to se zdi običajna praksa.
Nato aplikacija za dekoracijo.pot «je pritrjen na funkcijo» hello_world_app «. Dekorativne funkcije razširjajo ali spreminjajo funkcijo, na katero so vezane, ne da bi jih dejansko spremenile. Tukaj je »app.route ”dekorater se uporablja za določitev poti URL, kjer se bo izvajala priložena funkcija. Simbol “/” Flasku pove, naj izvede funkcijo na URL-ju “/”, kar pomeni “root” domena ali “root” URL. Če je na primer URL za vašo aplikacijo »app.com «, bo funkcija sprožena za» app.com «URL. Lahko ga spremenite tudi v kaj drugega. Na primer z uporabo okrasnega elementa »@app.route ('/ helloworld') ", lahko funkcijo preslikate v" app.com / helloworld ”URL.
Nazadnje se funkcija “hello_world_app” uporablja za vrnitev vsebine, ki jo želite prikazati v spletnem brskalniku, ko se izvaja vaša spletna aplikacija.
Zagon aplikacije Flask
Če želite zagnati aplikacijo Flask v Linuxu, morate zagnati ukaz v naslednji obliki:
$ izvoz FLASK_APP = glavno.py$ bučka teče
Spremeni “glavno.py "ime, kot je potrebno, da se ujema z vašim .Datoteka "py", v katero ste zapisali kodo bučke. Drugi ukaz zažene aplikacijo Flask. Zaženete lahko tudi ta nadomestni ukaz:
$ FLASK_APP = glavno.py bučka tečePo zagonu teh ukazov bi morali videti nekaj takšnih izhodov:
Preprosto odprite URL, naveden v terminalu v spletnem brskalniku, da vidite, kako vaša aplikacija deluje.
Aplikacijo Flask lahko zaženete v načinu za odpravljanje napak z uporabo spremenljivke okolja »FLASK_ENV« v naslednji obliki:
$ FLASK_ENV = razvoj FLASK_APP = glavni.py bučka tečeUporaba mehanizma za predloge Jinja2
Flask uporablja »Jinja2« za oblikovanje predlog, da olajša pisanje kode HTML v Pythonu. Z njim lahko nastavite oznako za »Hello World!!”Sporočilo.
Ustvarite nov imenik, imenovan »predloge«, kjer se nahaja vaš glavni skript Flask. V imeniku »template« ustvarite novo datoteko z imenom »hw_template.html ". Odprite "hw_template.html "in vanjo vstavite naslednjo kodo:
% if color%
Pozdravljen, svet!!
% else%
Pozdravljen, svet!!
% endif%
Ta koda je napisana v sintaksi, ki jo »Jinja2« razume. Glejte dokumentacijo o Jinja2, ki je na voljo tukaj. Oznaka predloge preveri, ali ji je bila posredovana spremenljivka z imenom "color". Če je odgovor pritrdilen, spremeni barvo »Hello World!!"Z uporabo vrednosti iz spremenljivke" color ", ki mu je bila posredovana.
Če želite spremenljivko predati predlogi »Jinja2«, morate napisati kodo v naslednji obliki:
@app.pot ('/')def hello_world_app ():
vrni render_template ('hw_template.html ', barva = "rdeča")
Metoda “render_template” se uporablja za upodabljanje oznak iz datoteke s predlogo “Jinja2”. Vnesete mu lahko ime predloge, ki jo želite upodobiti, in vse argumente, ki jih želite predati predlogi. Predloga »hw_template.html “, uporabljena zgoraj, obdeluje spremenljivko„ color “, potem ko ji je koda bučke posredovala spremenljivko„ color “z vrednostjo„ red “. Po zagonu zgoraj omenjenega vzorca kode bi morali dobiti naslednji rezultat:
Vrednosti spremenljivk lahko posredujete tudi iz samega URL-ja. Oglejte si spodnji vzorec kode:
@app.pot ('/')@app.route ('/
def hello_world_app (color = "blue"):
vrni render_template ('hw_template.html ', barva = barva)
Funkciji »hello_world_app« sta priloženi dve poti ali poti URL. Ko obiščete korensko domeno (primer »app.com «), boste videli» Hello World!!Sporočilo v modri barvi kot privzeta vrednost za spremenljivko "color" je opredeljeno kot "modro" in to je vrednost, ki jo posredujete tudi predlogi "Jinja2".
Druga pot, ki jo definira »@app.route ('/
Na primer, “Hello World !!Sporočilo se bo ob obisku aplikacije spremenilo v rdečo barvo.com / red «URL, vendar bo ob obisku» app.com «URL. Tukaj je vzporedna primerjava:
Zaključek
Flask je zmogljiv okvir za razvoj spletnih aplikacij, ki se lahko uporablja za ustvarjanje tako preprostih kot naprednih aplikacij. Ta vadnica v glavnem razlaga ustvarjanje preprostega »Hello World!!”App. Lahko ga povežete z bazo podatkov in z razširitvami razširite njeno funkcionalnost. Za več informacij o upravljanju zbirk podatkov in razširitev glejte dokumentacijo Flask.