Flask — Cheat Sheet

Tag: flask, python, web, routing, microframework

Livello: base

TL;DR: Appunti essenziali per usare Flask, microframework web in Python leggero ed estensibile.

Concetti chiave

Microframework: minimale, non impone un ORM o form engine specifici.

Routing: associa URL a funzioni Python tramite il decoratore @app.route().

Jinja2: motore di template di default per generare HTML dinamico.

Request context: oggetto globale request per accedere ai dati della richiesta corrente.

Werkzeug: libreria WSGI su cui si basa Flask.

Blueprint: meccanismo per organizzare l'applicazione in moduli riutilizzabili.

Configuration: gestibile tramite dizionario app.config o caricando da file/variabili d'ambiente.

Application context: gestisce variabili a livello di applicazione.

Domande tipiche e risposte pronte

Q: Come si gestiscono i metodi HTTP (es. POST) in Flask?R: Passo l'argomento methods=['GET', 'POST'] al decoratore @app.route().

Q: Cos'è un Blueprint in Flask?R: È un modo per raggruppare rotte, template e risorse statiche, utile per strutturare app di grandi dimensioni.

Q: Come si ottengono i parametri passati nella query string?R: Uso request.args.get('nome_parametro') importando l'oggetto request da flask.

Insidie e errori comuni

Dimenticarsi di importare request prima di usarlo per leggere i dati in POST.

Restituire direttamente un dizionario senza usare jsonify() o le funzioni native di Flask per il JSON in versioni precedenti alla 1.1.0.

Lavorare fuori dall'application context quando si cerca di accedere a estensioni.

Snippet e comandiPython

```from flask import Flask, request, jsonify

app = Flask(__name__)

@app.route('/', methods=['GET'])

def home():

return "Hello, World!"

@app.route('/api/data', methods=['POST'])

def handle_data():

data = request.json

return jsonify({"received": data}), 201

if __name__ == '__main__':

app.run(debug=True, port=5000)

```

Da ripassare

[ ] Flask-SQLAlchemy integration

[ ] Error handling personalizzato

[ ] Flask-Login per l'autenticazione

Jarvis Interviews
Jarvis