Flask
Op deze pagina:
Flask is een gratis en open-source micro web framework voor Python. Flask is gemaakt voor het ontwikkelen van veilige, schaalbare en onderhoudbare web applicaties. Flask is gebaseerd op WerkzeugWerkzeug is een WSGI web applicatie bibliotheek. en gebruikt Jinja2Jinja is een snelle, expressieve, uitbreidbare templating engine. Speciale plaatshouders in de template maken code mogelijk die lijkt op de Python syntax. als een template engine.
Anders als Django heeft Flask geen ORMObject–relational mapping: een programmeertechniek voor het omzetten van gegevens tussen een relationele database en de heap van een object-georienteerde programmeertaal., formulier validatie, of enige andere functionalitieit van bibliotheken van derden.
Flask is uitbreidbaar en dwingt geen bepaalde directorystructuur af of vereist geen ingewikkelde boilerplate-code voordat je aan de slag gaat.
Flask installeren
In Linux kun je Flask installeren zoals je andere programma's installeert via de package manager, maar dan ben je afhankelijk van de versie die de repository je geeft.
Een methode waarbij je meer flexibel bent is het installeren van Flask in een virtuele omgeving. Met virtuele omgevingen kun je geïsoleerde omgevingen maken voor verschillende Python projecten. Op deze wijze kun je verschillende Flask omgevingen gebruiken op je systeem en een specifieke versie van een module installeren per project zonder dat dit andere Flask installaties beïnvloed.
Je kunt een virtuele omgeving maken met de venv module die je krijgt met python3-venv.
Als je apt als package manager gebruikt, dan kun je dit als volgt installeren:
sudo apt install python3-venv
Nadat deze module is geïnstalleerd, kun je een virtuele omgeving voor Flask gaan maken. Maak een directory op de gewenste locatie voor je Flask applicatie, noem deze bijvoorbeeld flask_app en ga er naar toe:
mkdir flask_app && cd flask_app
Maak nu de virtuele omgeving aan:
python3 -m venv venv
Deze opdracht maakt een virtuele omgeving aan die venv heet. De naam venv is niet verplicht, je mag je virtuele omgeving ook een andere naam geven. Deze virtuele omgeving bevat een kopie van de Python binary, de Python standaard bibliotheek, de Pip package manager en andere noodzakelijke bestanden.
Om de virtuele omgeving te starten gebruik je het activate script:
source venv/bin/activate
Zodra je de virtuele omgeving actief hebt gemaakt zie je dat terug in de shell prompt, die zal de naam van de virtuele omgeving tonen. De bin directory van de virtuele omgeving wordt ook toegevoegd aan het begin van de $PATH variabele.
Nu kun je Flask installeren:
pip install Flask
In de virtuele omgeving kun je pip gebruiken in plaats van pip3 en python in plaats van python3.
Je kunt nagaan wat de versie is van Flask met:
python -m flask --version
Flask en 'Hallo wereld'
Om te testen of de installatie werkt kun je een 'Hallo wereld' app maken in de directory flask_app.
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return 'Hallo , Wereld!'
Dit script importeert eerst het Flask-object uit het flask-pakket. Vervolgens maakt het een Flask-toepassingsinstantie met de naam app. De speciale variabele __name__ bevat de naam van de huidige Python-module. Het wordt gebruikt om de instantie te vertellen waar het zich bevindt.
@app.route is een decorator die een gewone Python-functie verandert in een Flask-weergavefunctie, die de retourwaarde van de functie omzet in een HTTP-antwoord dat moet worden weergegeven door een HTTP-client, zoals een webbrowser. De waarde '/' wordt doorgegeven aan @app.route() om aan te geven dat deze functie reageert op webverzoeken voor de URL /, wat de hoofd-URL is.
De viewfunctie hello() retourneert de tekenreeks 'Hallo, Wereld!' als reactie. De naam 'hello' is niet verplicht, je mag elke andere willekeurige naam voor deze functie gebruiken.
Sla het script op als hallo.py. Start het script met de volgende opdracht:
flask --app hallo run --debug
In een browser kun je naar 127.0.0.1:5000 gaan om het resultaat te bekijken.
Met --debug wordt de debug modus aangezet. Dit betekent dat de Flask-foutopsporing actief is. Dit is handig bij het ontwikkelen, omdat het gedetailleerde foutmeldingen geeft als er iets misgaat, wat het oplossen van problemen eenvoudiger maakt.
Als je het script aanpast en weer opslaat, dan zul je hiervan een melding zien in de terminal, het script wordt automatisch herladen.
Poort 5000 is de standaardpoort voor flask als je geen andere poort opgeeft. Je kunt een andere poort opgeven met de -p parameter. Als je poort 8080 wilt gebruiken, dan kan dat met:
flask --app hallo run -p 8080 --debug
Flask gebruikt een eenvoudige webserver om de applicatie in een ontwikkelomgeving te draaien, wat ook betekent dat de Flask-foutopsporing wordt uitgevoerd om het opsporen van fouten gemakkelijker te maken. Deze ontwikkelingsserver is niet veilig genoeg voor een productie-implementatie.