Understand Flask app context (current_app, g) and request context (request, session) lifecycle.
App and Request Contexts
from flask import current_app, g
# App context
with app.app_context():
db.create_all()
print(current_app.config["DEBUG"])
# g — per-request storage
@app.before_request
def load_user():
user_id = session.get("user_id")
g.user = User.query.get(user_id) if user_id else None
@app.route("/profile")
def profile():
if g.user is None:
return redirect(url_for("auth.login"))
return render_template("profile.html", user=g.user)