Session data storage lets a website remember who you are while you browse. It keeps your info safe between pages without asking you again.
Session data storage in Flask
from flask import Flask, session app = Flask(__name__) app.secret_key = 'your_secret_key' @app.route('/') def index(): session['key'] = 'value' return 'Session data saved!' @app.route('/get') def get_session(): return session.get('key', 'No data')
You must set app.secret_key to keep session data secure.
Use session['key'] = value to save data and session.get('key') to read it.
session['username'] = 'Alice'
user = session.get('username', 'Guest')
session.pop('username', None)
This Flask app lets users log in by saving their username in session data. The homepage shows if they are logged in or not. Logging out removes the username from the session.
from flask import Flask, session, redirect, url_for, request app = Flask(__name__) app.secret_key = 'supersecretkey' @app.route('/') def index(): if 'username' in session: return f"Logged in as {session['username']}" return 'You are not logged in' @app.route('/login', methods=['POST']) def login(): username = request.form['username'] session['username'] = username return redirect(url_for('index')) @app.route('/logout') def logout(): session.pop('username', None) return redirect(url_for('index'))
Session data is stored client-side in a signed cookie on the user's browser.
Never store sensitive info like passwords directly in session.
Session data lasts until the browser closes or the session is cleared.
Session storage keeps user info between pages safely.
Set app.secret_key to enable sessions in Flask.
Use session['key'] to save and session.get('key') to read data.
Practice
Solution
Step 1: Understand session data role
Session data stores user info temporarily during their visit to keep state across pages.Step 2: Differentiate from other storage
It is not permanent storage or related to static files; it keeps data safe between requests.Final Answer:
To keep user information between different pages securely -> Option BQuick Check:
Session stores user info between pages = A [OK]
- Confusing session with permanent database storage
- Thinking session speeds up static file loading
- Believing session replaces cookies entirely
Solution
Step 1: Recall Flask session setup
Flask requires settingapp.secret_keyto enable session encryption.Step 2: Check syntax correctness
Onlyapp.secret_key = 'mysecret'is valid; others are invalid method or attribute names.Final Answer:
app.secret_key = 'mysecret' -> Option CQuick Check:
Set secret_key with app.secret_key = value [OK]
- Using wrong attribute like app.session_key
- Trying to call a non-existent method set_secret
- Assigning secret to session object instead of app
from flask import Flask, session
app = Flask(__name__)
app.secret_key = 'key'
@app.route('/')
def index():
session['count'] = session.get('count', 0) + 1
return str(session['count'])What will the user see on their first visit to the '/' route?
Solution
Step 1: Analyze session count initialization
On first visit, session.get('count', 0) returns 0, then adds 1, so count becomes 1.Step 2: Understand return value
The function returns the string of session['count'], which is '1'.Final Answer:
1 -> Option DQuick Check:
First visit count = 1 [OK]
- Thinking count starts at 0 instead of 1
- Expecting None because key is missing
- Assuming code causes an error without secret_key
from flask import Flask, session
app = Flask(__name__)
@app.route('/')
def index():
session['user'] = 'Alice'
return session['user']Solution
Step 1: Check session requirements
Flask sessions requireapp.secret_keyto be set for security.Step 2: Identify missing secret_key
The code does not setapp.secret_key, so session will not work properly.Final Answer:
Missing app.secret_key setup -> Option AQuick Check:
Sessions need app.secret_key set [OK]
- Thinking session can't store strings
- Believing request import is needed for session
- Assuming route decorator syntax is wrong
Solution
Step 1: Correctly set session key
Assigning withsession['lang'] = 'en'is correct to store the language.Step 2: Safely retrieve session value
Usingsession.get('lang', 'default')safely reads the value with a fallback if missing.Final Answer:
session['lang'] = 'en'\nlanguage = session.get('lang', 'default') -> Option AQuick Check:
Use session.get to safely read session keys [OK]
- Using session.set which does not exist
- Accessing wrong key name on read
- Not providing default causing KeyError
Ready to prove it?
Pass the test and this pattern moves unknown
