Performance: Before_request hooks
This affects server response time and perceived page load speed by running code before each request is processed.
from flask import Flask, g app = Flask(__name__) @app.before_request def lightweight_task(): g.data = 'ready' @app.route('/') def index(): return g.data
from flask import Flask, g app = Flask(__name__) @app.before_request def heavy_task(): # Simulate heavy computation or blocking IO import time time.sleep(2) # blocks request handling g.data = 'done' @app.route('/') def index(): return g.data
| Pattern | Server Delay | Blocking Operations | Impact on LCP | Verdict |
|---|---|---|---|---|
| Heavy blocking code in before_request | High (2+ seconds) | Yes (sleep or blocking IO) | Severe delay | [X] Bad |
| Minimal setup in before_request | Low (milliseconds) | No | Fast response | [OK] Good |
before_request hook in Flask?before_requestbefore_request hook runs before each request to prepare data or check conditions.before_request.before_request hook in Flask that does not short-circuit the request?before_request decorator is used without parentheses: @app.before_request./?
from flask import Flask, redirect
app = Flask(__name__)
@app.before_request
def check():
return redirect('/login')
@app.route('/')
def home():
return 'Home Page'
@app.route('/login')
def login():
return 'Login Page'check function unconditionally returns a redirect to /login for every request./ redirects to /login, but /login also triggers before_request which redirects again, causing an infinite loop.from flask import Flask
app = Flask(__name__)
@app.before_request
def before():
print('Before request')
return None
@app.route('/')
def index():
return 'Hello'before_request hook to block access to all routes except /login unless a user is logged in. Which code snippet correctly implements this?/login if the path is not /login and user is not logged in.Pass the test and this pattern moves unknown