Flask – microframework för python

En stor fördel med stora webframeworks som t.ex Django är att de i grunden har stöd för det
mesta man kan tänkas behöva i sin applikation men det är inte alltid man behöver allt detta i sin applikation.

Visst kan man använda t.ex Django ändå och bara inte använda sig av de extra funktionerna eller kanske skriva något i PHP,
men jag är mer lagd åt Python-hållet och använder hellre något mer lättviktigt alternativ om möjligt.

Däremot finns det några olika så kallade ”microframeworks” som har en kärna av viktiga funktioner
och logik men inte så mycket mer. Precis som med de andra frameworksen så finns det dock gott om extensions/plugins/moduler.

Min personliga favorit är Flask som är just ett microframework i Python.
Även om man kan dela upp sin applikation i flera filer så räcker det med en python-fil för att bygga
en applikation:
from flask import Flask

app = Flask(__name__)

@app.route(‘/’)
def cow_says_moo():
return ‘Cow says moooo!’

if __name__ == ‘__main__’:
app.run()
Enkelt va? ‘app’ är alltså vår Flask-applikation och initieras först. Sedan använder vi decoratorn route
för att definiera vilken URL som skall peka på funktionen cow_says_moo() som returnerar ‘Cow says moooo!’.

Variabla route’s gör man enkelt enligt t.e.x:
@app.route('/says/')
def who_says_moo(what):
return 'Cow says %s' % what

Flask har några dependencies, bla Jinja2 template-motorn som minst sagt känns bekant för en
som utvecklat i Django. Den kan användas t.ex såhär:
from flask import render_template

@app.route(‘/says/’)
def who_says_moo(what):
return render_template(‘moo.html’, what=what)
Och här följer templaten som flask kommer att söka efter i underkatalogen ‘templates’
Cow says {{ what }}

Efter ‘pip install flask’ kan du nu köra ‘python applikationen.py’ så startas en server som lyssnar på 127.0.0.1:5000.
Under tiden du utvecklar kan du sätta app.debug = True så får du stacktracear i webbläsaren,
en debug-console och servern startar om automatiskt om när du sparar filen.

Förutom den inbyggda servern kan man även använda t.e.x gunicorn när man är redo att gå från test
till produktion.

Nu har vi bara rört på ytan av vad Flask kan, här kan du läsa mer:

Dokumentation

Flask snipplets

Flask extensions