Sometime there is some code that you would like to run at the beginning of every request. Insead of insert the same code everywhere or event just inserting a function call in every route handler, Flask has an easy way to accomplish this using the before_request hook.
examples/flask/before_request/app.py
from flask import Flask
app = Flask(__name__)
@app.before_request
def before_request():
app.logger.info("before_request")
@app.route("/")
def main():
app.logger.info("main route")
return "Hello World!"
Run as:
FLASK_APP=app FLASK_DEBUG=1 flask run
Output on the console:
[2020-06-22 23:24:56,675] INFO in app: before_request
[2020-06-22 23:24:56,675] INFO in app: main route
127.0.0.1 - - [22/Jun/2020 23:24:56] "GET / HTTP/1.1" 200 -