flaska

Skapa en Hello World-app med hjälp av Flask Framework

Skapa en Hello World-app med hjälp av Flask Framework
Den här artikeln kommer att täcka en guide om hur du skriver en enkel Hello World-applikation med hjälp av Python-baserade "Flask" ramverk. Flask kan användas för att skapa minimala, utdragbara och avancerade webbapplikationer med en uppsättning bibliotek som ingår i modulen. Alla kodprover i denna handledning testas på Ubuntu 20.10 med Python version 3.8.6 och kolvversion 1.1.2.

Om Flask

Flask är ett Python-baserat ramverk för webbapplikationsutveckling som är speciellt utformat för att vara minimalt för att komma igång. Detta hjälper till med snabb prototypning, snabb utveckling och snabb distribution. Alla avancerade funktioner som du behöver lägga till i din webbapplikation kan läggas till via tillägg. Den officiella webbplatsen för Flask beskriver sig själv som ett "mikro" ramverk eftersom det lämnar alla större beslut till användarna själva och beslutar lite på uppdrag av dem. Användare kan välja sina egna mallmotorer, databashanteringsbibliotek, formulärvalideringsverktyg och så vidare, även om Flask kommer med vissa förnuftiga standardvärden.

Installerar Flask i Linux

Om du använder Ubuntu kan du installera Flask genom att utföra kommandot som nämns nedan:

$ sudo apt installera python3-kolv

Du kan undvika att använda förvarets version och installera den senaste versionen av Flask från "pip" -pakethanteraren genom att köra två kommandon i följd:

$ sudo apt installera python3-pip
$ pip3 installera kolven

Om du använder någon annan Linux-distribution, sök efter "Flask" -paket i pakethanteraren eller installera den från "pip" -installationsverktyget. Mer detaljerade instruktioner finns här.

När installationen är klar kan du kontrollera flaskversionen med kommandot som anges nedan:

$ python3 -c "importflaska; skriv ut (flaska.__version__)"

Klient-servermodellen

Som tidigare nämnts används Flask för att utveckla webbapplikationer. Vanligtvis använder alla ramar för utveckling av webbapplikationer i Python och andra programmeringsspråk klient-serverarkitektur. Flask använder också en klient-servermodell där användare kan skriva serversidan logik för att skapa webbapplikationer eller webbplatser. ”Klienten” hänvisar här till en webbläsare eller någon annan app som tillåter återgivning av webbsidor med HTML-, JavaScript- och CSS-teknik. Medan "servern" hänvisar till en lokal eller fjärrserver där din Flask-app skriven på Python-språk körs.

När du kör en Flask-app lokalt på din dator skapas en lokal server automatiskt för att betjäna webbapplikationen. Flask kommer att mata ut en lokal värd-URL i din terminal. Du kan besöka denna URL i valfri webbläsare för att se slutresultatet. Du kan också ställa in en fjärrserver för att underlätta kommunikationen mellan en klient och server och starta din egen offentliga webbplats eller webbapplikation.

Du kan skapa klient-sidans HTML-, JavaScript- och CSS-kod som behövs för din webbapplikation med hjälp av serverns sidkod skriven i Flask och Python. Men när webbapplikationen har distribuerats och du kör den i en webbläsare ser eller förstår inte din webbapplikation Python-kod. Det bearbetar endast HTML, JavaScript och CSS eftersom endast dessa tekniker främst stöds av webbläsare. Du kommer fortfarande att kunna kommunicera med servern från klientsidan med hjälp av HTTP-förfrågningar. Du kan väldigt mycket skicka data från klient till server, bearbeta det med hjälp av viss logik på serversidan och returnera resultatet.

Beroende på vilken typ av webbapplikation du utvecklar kan du behöva bestämma var du ska implementera logik: från serversidan eller klientsidan från fall till fall.

Enkel Hello World-applikation i kolv

Du kan använda kodprovet nedan för att skapa en förenklad “Hello World” -applikation i Flask för att komma igång:

från kolvimport Kolv
app = kolv (__ namn__)
@app.rutt('/')
def hello_world_app ():
meddelande = "Hello World!!"
tillbaka meddelande

Det första uttalandet i ovanstående kodprov importerar klassen "Flask" från "flask" -modulen. När du väl har importerat kommer du att kunna använda alla tillgängliga metoder i klassen "Flaska".

I nästa uttalande skapas en ny instans av "Flask" -klassen och namnet på filen levereras till den som ett argument. Om du bara använder en enda “.py ”-fil utan ytterligare” __init__.py ”-fil som vanligtvis används när du skapar en filstruktur för ett Python-paket, kommer namnet att ha ett hårdkodat värde på“ __main__ ”. Argumentet "__name__" berättar för Flask var du ska leta efter filer som är relaterade till den aktuella kolvapplikationen som körs. Du kan också ange din egen anpassade sökväg till din huvudflaskfil istället för att ange ett "__name__" -argument. Men vanligtvis använder de flesta utvecklare endast "__name__" och detta verkar vara vanligt.

Nästa, en "dekoration" "app.rutt ”bifogas funktionen“ hello_world_app ”. Dekorationsfunktioner utökar eller modifierar funktionen de är kopplade till utan att faktiskt ändra dem. Här, ”app.rutt ”dekoratör används för att ange URL-sökvägen där den bifogade funktionen ska köras. Symbolen “/” säger till Flask att utföra en funktion på “/” URL, som står för “root” -domän eller “root” URL. Till exempel om webbadressen till din app är ”app.com ”, kommer funktionen att utlösas för” app.com ”URL. Du kan också ändra det till något annat. Till exempel genom att använda en dekoratör “@app.rutt ('/ helloworld') ”, kan du mappa funktionen till“ app.com / helloworld ”URL.

Slutligen används funktionen ”hello_world_app” för att returnera det innehåll du vill visa i en webbläsare när din webbapp körs.

Köra en flaskapp

För att köra en Flask-app i Linux måste du köra ett kommando i följande format:

$ export FLASK_APP = huvud.py
$ kolvkörning

Ändra “main.py ”namn efter behov för att matcha det med ditt eget .”Py” -fil där du har skrivit din Flask-kod. Det andra kommandot kör din Flask-app. Du kan också köra det här alternativa kommandot:

$ FLASK_APP = huvud.py kolvkörning

Efter att ha kört dessa kommandon bör du se en del utdata så här:

Öppna bara webbadressen som nämns i terminalen i en webbläsare för att se din applikation i aktion.

Du kan köra Flask-appen i felsökningsläge genom att använda miljövariabeln "FLASK_ENV" i följande format:

$ FLASK_ENV = utveckling FLASK_APP = main.py kolvkörning

Använda Jinja2 mallmotor

Flask använder "Jinja2" för att mallmotorn för att underlätta skrivning av HTML-kod i Python. Du kan använda den för att ställa in en markering för “Hello World!!”Meddelande.

Skapa en ny katalog som heter "mallar" där ditt huvudsakliga Flask-skript finns. Skapa en ny fil med namnet “hw_template” i katalogen ”mall”.html ”. Öppna “hw_template.html ”-fil och placera följande kod i den:


Hej världen!!
% if color%

Hej världen!!


% else%

Hej världen!!


% endif%

Den här koden är skriven i en syntax som "Jinja2" förstår. Du kan se dokumentationen "Jinja2" som finns här. Mallmarkeringen kontrollerar om en variabel med namnet “färg” har skickats till den eller inte. Om ja, ändrar det färgen på “Hello World!!”-Meddelande med värdet från” färg ”-variabeln som skickas till det.

För att skicka en variabel till "Jinja2" -mallen måste du skriva kod i följande format:

@app.rutt('/')
def hello_world_app ():
returnera render_template ('hw_template.html ', color = "red")

Metoden "render_template" används för att göra markering från en mallfil "Jinja2". Du kan ange namnet på mallen du vill återge och alla argument du vill skicka till mallen. Den "hw_template.html-mall som används ovan bearbetar en "färg" -variabel efter att kolvkoden har skickat den till en "färg" -variabel med värdet "röd". Efter att ha kört kodprovet som nämns ovan bör du få följande resultat:

Du kan också skicka variabla värden från en webbadress i sig. Ta en titt på kodprovet nedan:

@app.rutt('/')
@app.rutt('/')
def hello_world_app (color = "blue"):
returnera render_template ('hw_template.html ', färg = färg)

Två URL-vägar eller rutter är kopplade till funktionen “hello_world_app”. När du besöker rotdomänen (exempel ”app.com ”), kommer du att se” Hello World!!”Meddelande i blå färg som standardvärde för” färg ”-variabel definieras som“ blå ”och detta är det värde du också skickar till” Jinja2 ”-mallen.

Den andra sökvägen definierad av “@app.rutt('/') ”Använder en speciell syntax. Inom "<>" -symbolerna kan du definiera alla variabler som ska skickas vidare till "hello_world_app" -funktionen. Standardvärdet för denna variabel definieras som ett argument för funktionen “hello_word_app”. Du skickar sedan din egen anpassade variabel som ett argument till "render_template" -metoden och ställer in dess värde till variabeln du definierade medan du dekorerade funktionen med en ny anpassad rutt.

Till exempel ”Hello World !!”Meddelandet ändras till rött när du besöker” app.com / red ”URL men den förblir blå när du besöker” app.com ”URL. Här är en jämförelse sida vid sida:

Slutsats

Flask är ett kraftfullt ramverk för utveckling av webbapplikationer som kan användas för att skapa både enkla och avancerade applikationer. Denna handledning förklarar huvudsakligen att skapa ett enkelt “Hello World!!" app. Du kan ansluta den till en databas och använda tillägg för att ytterligare utöka dess funktionalitet. Se dokumentationen för Flask för att veta mer om hantering av databaser och tillägg.

Mus Lägg till musgester i Windows 10 med dessa gratisverktyg
Lägg till musgester i Windows 10 med dessa gratisverktyg
Under senare år har datorer och operativsystem utvecklats kraftigt. Det fanns en tid då användare var tvungna att använda kommandon för att navigera g...
Mus Kontrollera och hantera musrörelser mellan flera skärmar i Windows 10
Kontrollera och hantera musrörelser mellan flera skärmar i Windows 10
Dual Display Mouse Manager låter dig kontrollera och konfigurera musrörelser mellan flera skärmar genom att sakta ner dess rörelser nära gränsen. Wind...
Mus WinMouse låter dig anpassa och förbättra muspekarens rörelse på Windows PC
WinMouse låter dig anpassa och förbättra muspekarens rörelse på Windows PC
Om du vill förbättra standardfunktionerna för din muspekare, använd freeware WinMouse. Det lägger till fler funktioner som hjälper dig att få ut det m...