fles

Maak een Hello World-app met Flask Framework

Maak een Hello World-app met Flask Framework
Dit artikel behandelt een handleiding voor het schrijven van een eenvoudige hello world-toepassing met behulp van het op Python gebaseerde "Flask" -framework. Flask kan worden gebruikt om minimale, uitbreidbare en geavanceerde webapplicaties te maken met behulp van een set bibliotheken in de module. Alle codevoorbeelden in deze tutorial zijn getest op Ubuntu 20.10 met Python-versie 3.8.6 en Flask versie 1.1.2.

Over Flask

Flask is een op Python gebaseerd framework voor het ontwikkelen van webapplicaties dat speciaal is ontworpen om minimaal te zijn om u op weg te helpen. Dit helpt bij snelle prototyping, snelle ontwikkeling en snelle implementatie. Alle geavanceerde functies die u aan uw webtoepassing moet toevoegen, kunnen worden toegevoegd via extensies. De officiële site van Flask omschrijft zichzelf als een "micro"-framework omdat het alle belangrijke beslissingen aan de gebruikers zelf overlaat en weinig namens hen beslist. Gebruikers kunnen hun eigen sjabloon-engines, databasebeheerbibliotheken, formuliervalidatietools enzovoort kiezen, hoewel Flask wel enkele normale standaardwaarden heeft.

Flask installeren in Linux

Als u Ubuntu gebruikt, kunt u Flask installeren door de onderstaande opdracht uit te voeren:

$ sudo apt install python3-flask

U kunt het gebruik van de repository-versie vermijden en de nieuwste versie van Flask installeren vanuit de pakketbeheerder "pip" door de volgende twee opdrachten achter elkaar uit te voeren:

$ sudo apt install python3-pip
$ pip3 installeer kolf

Als je een andere Linux-distributie gebruikt, zoek dan naar "Flask" -pakketten in de pakketbeheerder of installeer het vanuit de "pip" -pakketinstallatietool. Verdere gedetailleerde instructies zijn hier beschikbaar.

Zodra de installatie is voltooid, kunt u de Flask-versie controleren met behulp van de onderstaande opdracht:

$ python3 -c "import kolf; print(kolf.__versie__)"

Het client-servermodel

Zoals eerder vermeld, wordt Flask gebruikt om webapplicaties te ontwikkelen. Doorgaans gebruiken alle frameworks voor de ontwikkeling van webapplicaties in Python en andere programmeertalen client-server-architectuur. Flask gebruikt ook een client-servermodel waarbij gebruikers server-side logica kunnen schrijven om webapplicaties of websites te maken. De "client" verwijst hier naar een webbrowser of een andere app waarmee webpagina's kunnen worden weergegeven met behulp van HTML-, JavaScript- en CSS-technologieën. Terwijl de "server" verwijst naar een lokale of externe server waar uw Flask-app geschreven in Python-taal wordt uitgevoerd.

Wanneer u een Flask-app lokaal op uw pc uitvoert, wordt automatisch een lokale server gemaakt om de webtoepassing te bedienen. Flask voert een localhost-URL uit in uw terminal. U kunt deze URL in elke webbrowser bezoeken om het eindresultaat te bekijken. U kunt ook een externe server opzetten om de communicatie tussen een client en server te vergemakkelijken en uw eigen openbare website of webtoepassing te starten.

U kunt HTML-, JavaScript- en CSS-code aan de clientzijde maken die nodig is voor uw webtoepassing door servercode te gebruiken die is geschreven in Flask en Python. Maar zodra de webtoepassing is geïmplementeerd en u deze in een webbrowser uitvoert, zal uw webtoepassing de Python-code niet zien of begrijpen. Het zal alleen HTML, JavaScript en CSS verwerken, aangezien alleen deze technologieën voornamelijk worden ondersteund door webbrowsers. U kunt nog steeds communiceren met de server vanaf de clientzijde met behulp van HTTP-verzoeken. U kunt heel veel gegevens van client naar server doorgeven, deze verwerken met behulp van logica aan de serverzijde en het resultaat retourneren.

Dus afhankelijk van het soort webtoepassing dat u aan het ontwikkelen bent, moet u misschien beslissen waar u logica wilt implementeren: van geval tot geval aan de serverzijde of aan de clientzijde.

Eenvoudige Hello World-toepassing in Flask

U kunt het onderstaande codevoorbeeld gebruiken om een ​​simplistische "Hello World" -toepassing in Flask te maken om aan de slag te gaan:

uit kolf import Flask
app = Kolf(__naam__)
@app.route('/')
def hallo_world_app():
message = "Hallo wereld!!"
bericht terug

De eerste instructie in het bovenstaande codevoorbeeld importeert de klasse "Flask" uit de module "flask". Eenmaal geïmporteerd, kunt u alle methoden gebruiken die beschikbaar zijn in de klasse "Flask".

In de volgende instructie wordt een nieuwe instantie van de klasse "Flask" gemaakt en de naam van het bestand wordt eraan toegevoegd als argument. Als u slechts een enkele ".py" bestand zonder een extra "__init__.py" -bestand dat doorgaans wordt gebruikt bij het maken van een bestandsstructuur voor een Python-pakket, heeft de naam een ​​hardcoded waarde van "__main__". Het argument "__name__" vertelt Flask waar te zoeken naar bestanden met betrekking tot de huidige flask-toepassing die wordt uitgevoerd. U kunt ook uw eigen aangepaste pad naar uw hoofd Flask-bestand opgeven in plaats van een argument "__name__" op te geven. Maar meestal gebruiken de meeste ontwikkelaars alleen "__name__" en dit lijkt de standaardpraktijk te zijn.

Vervolgens een "decoratie" "app.route" is gekoppeld aan de functie "hello_world_app". Decoreerfuncties breiden of wijzigen de functie waaraan ze zijn gekoppeld, zonder ze daadwerkelijk te veranderen. Hier, "app".route" wordt gebruikt om het URL-pad op te geven waar de bijgevoegde functie zal worden uitgevoerd. Het "/" symbool vertelt Flask om een ​​functie uit te voeren op de "/" URL, wat staat voor "root" domein of "root" URL. Als de URL voor uw app bijvoorbeeld 'app' is.com", wordt de functie geactiveerd voor "app.com” URL. Je kunt het ook in iets anders veranderen. Bijvoorbeeld door een decorateur "@app" te gebruiken.route('/helloworld')", kunt u de functie toewijzen aan "app.com/helloworld” URL.

Ten slotte wordt de functie "hello_world_app" gebruikt om de inhoud terug te geven die u in een webbrowser wilt weergeven wanneer uw web-app actief is.

Een Flask-app uitvoeren

Om een ​​Flask-app in Linux uit te voeren, moet u een opdracht in de volgende indeling uitvoeren:

$ export FLASK_APP=hoofd.py
$ kolf run

Wijzig "hoofd".py" naam indien nodig om deze te matchen met die van jou .”py”-bestand waarin u uw Flask-code hebt geschreven. De tweede opdracht voert uw Flask-app uit. U kunt ook deze alternatieve opdracht uitvoeren:

$ FLASK_APP=hoofd.py flask run

Na het uitvoeren van deze commando's, zou je wat output als volgt moeten zien:

Open gewoon de URL die in de terminal wordt vermeld in een webbrowser om uw toepassing in actie te zien.

U kunt de Flask-app in de foutopsporingsmodus uitvoeren door de omgevingsvariabele "FLASK_ENV" in de volgende indeling te gebruiken:

$ FLASK_ENV=ontwikkeling FLASK_APP=hoofd.py flask run

Jinja2-sjabloonengine gebruiken

Flask gebruikt "Jinja2" als template-engine om het schrijven van HTML-code in Python te vergemakkelijken. U kunt het gebruiken om een ​​markering in te stellen voor "Hallo wereld!!” bericht.

Maak een nieuwe map met de naam "templates" waar uw hoofd Flask-script zich bevindt. Maak in de map "template" een nieuw bestand met de naam "hw_template".html”. Open de “hw_template.html” bestand en zet de volgende code erin:


Hallo Wereld!!
% als kleur %

Hallo Wereld!!


% anders %

Hallo Wereld!!


% stop als %

Deze code is geschreven in een syntaxis die "Jinja2" begrijpt. U kunt de "Jinja2"-documentatie raadplegen die hier beschikbaar is. De sjabloonopmaak controleert of er een variabele met de naam "kleur" aan is doorgegeven of niet. Zo ja, dan verandert het de kleur van de "Hello World"!!" bericht met behulp van de waarde van de "color" variabele die eraan is doorgegeven.

Om een ​​variabele door te geven aan de "Jinja2"-sjabloon, moet je code in het volgende formaat schrijven:

@app.route('/')
def hallo_world_app():
return render_template('hw_template.html', kleur = "rood")

De methode "render_template" wordt gebruikt om opmaak uit een sjabloonbestand "Jinja2" weer te geven. U kunt de naam van de sjabloon die u wilt weergeven en eventuele argumenten die u aan de sjabloon wilt doorgeven, opgeven. De “hw_template.html"-sjabloon die hierboven wordt gebruikt, verwerkt een "kleur" -variabele nadat de Flask-code deze heeft doorgegeven aan een "kleur" -variabele met de waarde "rood". Nadat u het hierboven genoemde codevoorbeeld hebt uitgevoerd, zou u het volgende resultaat moeten krijgen:

U kunt ook variabele waarden van een URL zelf doorgeven. Bekijk het onderstaande codevoorbeeld:

@app.route('/')
@app.route('/')
def hello_world_app(color="blue"):
return render_template('hw_template.html', kleur=kleur)

Twee URL-paden of routes zijn gekoppeld aan de functie "hello_world_app". Wanneer u het hoofddomein bezoekt (bijvoorbeeld “app.com"), ziet u de "Hello World!!" bericht in blauwe kleur omdat de standaardwaarde voor de variabele "kleur" is gedefinieerd als "blauw" en dit is de waarde die u ook doorgeeft aan de sjabloon "Jinja2".

Het tweede pad gedefinieerd door "@app.route('/')” gebruikt een speciale syntaxis. Binnen "<>" symbolen, kunt u variabelen definiëren om door te geven aan de "hello_world_app" functie. De standaardwaarde voor deze variabele wordt gedefinieerd als een argument voor de functie "hello_word_app". Vervolgens geeft u uw eigen aangepaste variabele als argument door aan de methode "render_template" en stelt u de waarde ervan in op de variabele die u hebt gedefinieerd terwijl u de functie versiert met een nieuwe aangepaste route.

Bijvoorbeeld: "Hallo wereld" !!” bericht zal veranderen in kleur rood wanneer u “app” bezoekt.com/red” URL, maar deze blijft blauw wanneer u naar “app . gaat.com” URL. Hier is een zij-aan-zij vergelijking:

Conclusie

Flask is een krachtig framework voor de ontwikkeling van webapplicaties dat kan worden gebruikt om zowel eenvoudige als geavanceerde applicaties te maken. In deze zelfstudie wordt voornamelijk uitgelegd hoe u een eenvoudige "Hallo wereld" maakt!!app. U kunt het verbinden met een database en extensies gebruiken om de functionaliteit verder uit te breiden. Raadpleeg de Flask-documentatie voor meer informatie over het beheren van databases en extensies.

Strijd om Wesnoth Zelfstudie
The Battle for Wesnoth is een van de meest populaire open source strategiespellen die je op dit moment kunt spelen. Dit spel is niet alleen al heel la...
0 A.D. zelfstudie
Van de vele strategiespellen die er zijn, 0 A.D. slaagt erin om op te vallen als een uitgebreide titel en een zeer diep, tactisch spel ondanks dat het...
Unity3D-zelfstudie
Inleiding tot Unity 3D Unity 3D is een krachtige game-ontwikkelingsengine. Het is platformoverschrijdend, zodat je games voor mobiel, internet, deskto...