Sessions help keep track of who a user is while they use a website. This way, the site remembers the user's info without asking again and again.
Why sessions manage user state in Flask
from flask import Flask, session app = Flask(__name__) app.secret_key = 'your_secret_key' @app.route('/') def index(): session['username'] = 'Alice' return 'User saved in session' @app.route('/profile') def profile(): user = session.get('username', 'Guest') return f'Hello, {user}!'
You must set secret_key to keep sessions secure.
Use session like a dictionary to store and get user data.
session['cart'] = ['apple', 'banana']
user = session.get('username', 'Guest')
session.pop('username', None)
This simple Flask app lets a user log in by typing a username. The username is saved in the session. The profile page greets the user by name if logged in. The logout page clears the session.
from flask import Flask, session, redirect, url_for, request app = Flask(__name__) app.secret_key = 'supersecretkey' @app.route('/login', methods=['GET', 'POST']) def login(): if request.method == 'POST': username = request.form['username'] session['username'] = username return redirect(url_for('profile')) return ''' <form method="post"> Username: <input type="text" name="username"> <input type="submit" value="Login"> </form> ''' @app.route('/profile') def profile(): if 'username' in session: return f"Hello, {session['username']}! Welcome back." return 'You are not logged in.' @app.route('/logout') def logout(): session.pop('username', None) return 'You have been logged out.' if __name__ == '__main__': app.run(debug=True)
Sessions store data in signed cookies on the client side.
Never store sensitive info like passwords directly in sessions.
Sessions expire after some time or when the user logs out.
Sessions keep user info while they browse a site.
They help websites remember who you are without asking repeatedly.
Flask sessions work like a dictionary to save and get user data safely.
Practice
Solution
Step 1: Understand what user state means
User state means remembering who the user is while they browse different pages.Step 2: Identify how sessions help
Sessions store user info safely between requests, so the site knows who the user is without asking again.Final Answer:
They store user information between different requests to remember the user. -> Option CQuick Check:
Sessions remember user info = They store user information between different requests to remember the user. [OK]
- Thinking sessions speed up images
- Confusing sessions with design updates
- Believing sessions block users
Solution
Step 1: Recall Flask session syntax
Flask sessions behave like dictionaries, so setting a value uses square brackets.Step 2: Match correct syntax
Using session['user'] = 'Alice' correctly sets the key 'user' to 'Alice'. Other methods are invalid.Final Answer:
session['user'] = 'Alice' -> Option AQuick Check:
Session uses dict syntax = session['user'] = 'Alice' [OK]
- Using session.set() which does not exist
- Trying session.add() which is invalid
- Using dot notation like session.user
from flask import Flask, session
app = Flask(__name__)
app.secret_key = 'key'
with app.test_request_context():
session['count'] = session.get('count', 0) + 1
print(session['count'])Solution
Step 1: Understand session.get usage
session.get('count', 0) returns 0 if 'count' is not set yet.Step 2: Calculate new count value
Adding 1 to 0 gives 1, so session['count'] becomes 1 and prints 1.Final Answer:
1 -> Option DQuick Check:
Initial count + 1 = 1 [OK]
- Expecting 0 instead of 1
- Thinking session is unavailable in test context
- Assuming None is printed
from flask import Flask, session
app = Flask(__name__)
@app.route('/')
def index():
session['username'] = 'Bob'
return 'Hello'Solution
Step 1: Check session setup requirements
Flask requires app.secret_key to use sessions securely.Step 2: Verify code for secret_key
The code does not set app.secret_key, so sessions won't work properly.Final Answer:
Missing app.secret_key to enable sessions -> Option BQuick Check:
Secret key needed for sessions = Missing app.secret_key to enable sessions [OK]
- Using dot notation for session keys
- Thinking Flask lacks session support
- Assuming route decorator is wrong
Solution
Step 1: Understand session purpose for user state
Sessions store user-specific data that can change, like language preference.Step 2: Choose correct update method
Updating session['lang'] when user changes language keeps the session current and accurate.Final Answer:
Update session['lang'] each time the user selects a new language. -> Option AQuick Check:
Update session on change = Update session['lang'] each time the user selects a new language. [OK]
- Setting session once and never updating
- Using global variables that don't track users
- Ignoring Flask sessions and using plain cookies
Ready to prove it?
Pass the test and this pattern moves unknown
