Middleware helps add extra features to your web app without changing its main code. It acts like a helper that works between the user and your app.
0
0
Why middleware extends functionality in Flask
Introduction
You want to check user login before letting them see a page.
You need to log every request a user makes to your app.
You want to add security checks like blocking bad users.
You want to modify requests or responses, like adding headers.
You want to handle errors in one place for all requests.
Syntax
Flask
from flask import Flask, request app = Flask(__name__) @app.before_request def middleware_function(): # Code here runs before each request pass @app.after_request def after_middleware(response): # Code here runs after each request return response
@app.before_request runs code before each request reaches your route.
@app.after_request runs code after your route sends a response.
Examples
This middleware checks if the request has an Authorization header. If not, it stops the request with a 401 error.
Flask
from flask import Flask, request app = Flask(__name__) @app.before_request def check_auth(): if not request.headers.get('Authorization'): return 'Unauthorized', 401
This middleware adds a custom header to every response sent by the app.
Flask
from flask import Flask app = Flask(__name__) @app.after_request def add_header(response): response.headers['X-Custom-Header'] = 'Hello' return response
Sample Program
This simple Flask app uses middleware to print the path of every request before showing the homepage.
Flask
from flask import Flask, request app = Flask(__name__) @app.before_request def log_request(): print(f"Request to {request.path}") @app.route('/') def home(): return 'Welcome to the homepage!' if __name__ == '__main__': app.run(debug=True)
OutputSuccess
Important Notes
Middleware runs for every request, so keep it fast and simple.
Use middleware to keep your main code clean and focused on core tasks.
Flask middleware can stop a request early by returning a response inside before_request.
Summary
Middleware adds extra steps before or after your main app code runs.
It helps with tasks like security, logging, and modifying requests or responses.
Using middleware keeps your app organized and easier to maintain.