Skip to content

Instantly share code, notes, and snippets.

@lost-theory
Created January 12, 2013 23:49
Show Gist options
  • Star 42 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save lost-theory/4521102 to your computer and use it in GitHub Desktop.
Save lost-theory/4521102 to your computer and use it in GitHub Desktop.
flask: show request time in template
import time
from flask import Flask, request, g, render_template
app = Flask(__name__)
app.config['DEBUG'] = True
@app.before_request
def before_request():
g.request_start_time = time.time()
g.request_time = lambda: "%.5fs" % (time.time() - g.request_start_time)
@app.route("/")
def index():
t = request.values.get('t', 0)
time.sleep(float(t)) #just to show it works...
return render_template("index.html")
if __name__ == "__main__":
app.run(use_debugger=True, use_reloader=True)
Rendered in {{ g.request_time() }}
$ curl http://127.0.0.1:5000/
Rendered in 0.00100s
$ curl http://127.0.0.1:5000/?t=1
Rendered in 1.00106s
$ curl http://127.0.0.1:5000/?t=2
Rendered in 2.00111s
$ curl http://127.0.0.1:5000/?t=10
Rendered in 10.00057s
@horazont
Copy link

horazont commented Jun 27, 2019

You’ll want to use time.monotonic() for correctness :)

Otherwise, you end up with weird negative page rendering times during leap seconds :)

@mallikharjuna160003
Copy link

I got jinja2.exceptions.TemplateNotFound

@mallikharjuna160003
Copy link

please resolve this

@anddoellinger
Copy link

@mallikharjuna160003 To resolve this error just create a directory "templates" and put the required html files in.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment