Performance: Session lifetime
This affects how long user session data is stored and impacts server memory usage and response time.
from flask import Flask, session from datetime import timedelta app = Flask(__name__) app.secret_key = 'secret' app.permanent_session_lifetime = timedelta(minutes=30) @app.route('/') def index(): session['user'] = 'guest' session.permanent = True return 'Hello, guest!'
from flask import Flask, session from datetime import timedelta app = Flask(__name__) app.secret_key = 'secret' app.permanent_session_lifetime = timedelta(days=30) @app.route('/') def index(): session['user'] = 'guest' session.permanent = True return 'Hello, guest!'
| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| Long session lifetime (days) | N/A | N/A | N/A | [X] Bad |
| Short session lifetime (minutes) | N/A | N/A | N/A | [OK] Good |
session.permanent = True in a Flask app do?session.permanent = True tells Flask to keep the session alive for a set duration instead of ending it when the browser closes.permanent_session_lifetimeapp.permanent_session_lifetime to decide how long it lasts.permanent_session_lifetime duration. -> Option Aapp.permanent_session_lifetime to set how long permanent sessions last.timedelta object from Python's datetime module, e.g., timedelta(minutes=30).session.permanent = True and app.permanent_session_lifetime = timedelta(hours=1)?
from flask import Flask, session
from datetime import timedelta
app = Flask(__name__)
app.secret_key = 'secret'
app.permanent_session_lifetime = timedelta(hours=1)
@app.route('/')
def index():
session.permanent = True
session['user'] = 'Alice'
return 'Session set'session.permanent = True, so the session uses the app's permanent lifetime.app.permanent_session_lifetime = timedelta(hours=1), so the session lasts 1 hour.from flask import Flask, session
from datetime import timedelta
app = Flask(__name__)
app.secret_key = 'secret'
app.permanent_session_lifetime = timedelta(hours=1)
@app.route('/')
def index():
session['user'] = 'Bob'
return 'Session set'session['user'] but does not set session.permanent = True.session.permanent = True, the session lasts only until the browser closes, ignoring permanent_session_lifetime.session.permanent = True. -> Option Capp.permanent_session_lifetime = timedelta(hours=2) to define 2 hours for permanent sessions.session.permanent = True, else set it to False.Pass the test and this pattern moves unknown