Flask Basics
9 examples to get you started with Flask 3.1 - 6 basic and 3 intermediate.
Search across all documentation pages
9 examples to get you started with Flask 3.1 - 6 basic and 3 intermediate.
uv pip install "flask>=3.1"
export FLASK_APP=app:create_app
flask runHello world WSGI app.
from flask import Flask
app = Flask(__name__)
@app.get("/")
def home():
return {"message": "Hello"}Flask(__name__) sets package root.flask run in development.Related: Building REST APIs - JSON patterns
Restrict HTTP verbs.
from flask import Flask
app = Flask(__name__)
@app.route("/items", methods=["GET", "POST"])
def items():
return {"ok": True}@app.get / @app.post shortcuts.Read query string parameters.
from flask import Flask, request
app = Flask(__name__)
@app.get("/search")
def search():
q = request.args.get("q", "")
return {"q": q}request.args is immutable mapping.Parse JSON POST bodies.
from flask import Flask, request
app = Flask(__name__)
@app.post("/items")
def create():
data = request.get_json(force=True)
return data, 201Dynamic path segments.
from flask import Flask
app = Flask(__name__)
@app.get("/users/<int:user_id>")
def user(user_id: int):
return {"user_id": user_id}abort(404) when missing.JSON errors.
from flask import Flask, abort
app = Flask(__name__)
@app.errorhandler(404)
def not_found(e):
return {"error": "not_found"}, 404Related: Middleware patterns via hooks - lifecycle
Create app via factory function.
from flask import Flask
def create_app():
app = Flask(__name__)
app.config.from_mapping(DEBUG=True)
return appRelated: Application Factories & Blueprints - blueprints
Modular routes.
from flask import Blueprint
bp = Blueprint("users", __name__, url_prefix="/users")
@bp.get("/")
def list_users():
return []app.register_blueprint.In-process HTTP tests.
def test_home(client):
r = client.get("/")
assert r.status_code == 200app.test_client().TESTING config flag.Related: Testing Flask - fixtures
Stack versions: This page was written for Python 3.14.0 (stable 3.14, maintenance 3.13), FastAPI 0.115+, Django 5.2, Flask 3.1, Pydantic 2, PyTorch 2.6+, pandas 2.2+, Polars 1.x, ruff 0.9+, and uv 0.6+.
Reviewed by Chris St. John·Last updated Jul 19, 2026