Bird
Raised Fist0
Flaskframework~5 mins

Flask session object

Choose your learning style10 modes available
Introduction

The Flask session object lets you save small pieces of information about a user while they browse your website. It helps keep track of things like login status or preferences without needing a database.

Remember if a user is logged in during their visit.
Store user preferences like theme or language choice temporarily.
Keep track of items added to a shopping cart before checkout.
Save form data temporarily to refill fields if the user returns.
Count how many times a user has visited a page during a session.
Syntax
Flask
from flask import session

# Set a value
session['key'] = 'value'

# Get a value
value = session.get('key')

# Remove a value
session.pop('key', None)

The session object works like a dictionary to store key-value pairs.

Flask signs the session data to keep it secure but stores it on the client side by default.

Examples
Save the username 'alice' in the session.
Flask
session['username'] = 'alice'
Retrieve the username from the session safely.
Flask
user = session.get('username')
Remove the username from the session if it exists.
Flask
session.pop('username', None)
Sample Program

This simple Flask app uses the session object to remember if a user is logged in. When the user posts their username to /login, it saves it in the session. The index page shows if the user is logged in or not. The /logout route clears the session.

Flask
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'))
OutputSuccess
Important Notes

Always set app.secret_key to keep session data secure.

Session data is stored client-side in cookies, so keep it small and avoid sensitive info.

Use session.get() to avoid errors if a key is missing.

Summary

The Flask session object stores user data temporarily during their visit.

It works like a dictionary and keeps data between requests.

Remember to set a secret key to protect session data.

Practice

(1/5)
1. What is the main purpose of the Flask session object?
easy
A. To store user-specific data temporarily between requests
B. To connect to a database
C. To handle file uploads
D. To render HTML templates

Solution

  1. Step 1: Understand the role of session in Flask

    The session object is designed to keep data for a user during their visit, like a temporary storage.
  2. Step 2: Compare with other options

    Connecting to databases, handling uploads, and rendering templates are done by other Flask features, not session.
  3. Final Answer:

    To store user-specific data temporarily between requests -> Option A
  4. Quick Check:

    Session stores user data temporarily [OK]
Hint: Session stores data per user visit like a temporary box [OK]
Common Mistakes:
  • Thinking session connects to databases
  • Confusing session with template rendering
  • Assuming session handles file uploads
2. Which of the following is the correct way to import and use the Flask session object?
easy
A. import flask.session flask.session['user'] = 'Alice'
B. from flask_session import Session Session['user'] = 'Alice'
C. from flask import session session['user'] = 'Alice'
D. import session session['user'] = 'Alice'

Solution

  1. Step 1: Check the correct import statement

    The Flask session object is imported directly from flask using from flask import session.
  2. Step 2: Verify usage syntax

    After import, you can use it like a dictionary: session['user'] = 'Alice'.
  3. Final Answer:

    from flask import session\nsession['user'] = 'Alice' -> Option C
  4. Quick Check:

    Import session from flask and assign like dict [OK]
Hint: Import session directly from flask, then use like a dict [OK]
Common Mistakes:
  • Trying to import session from flask_session package
  • Using wrong import syntax like import session
  • Accessing session as flask.session instead of from flask import session
3. What will be the output of this Flask route code snippet?
from flask import Flask, session
app = Flask(__name__)
app.secret_key = 'secret'

@app.route('/')
def index():
    session['count'] = session.get('count', 0) + 1
    return f"Count: {session['count']}"
medium
A. Count: 1
B. Error: session not defined
C. Count: 2
D. Count: 0

Solution

  1. Step 1: Understand session initialization and increment

    The code gets 'count' from session or 0 if not set, then adds 1 and stores it back.
  2. Step 2: Determine output on first request

    On first visit, 'count' is not in session, so session.get('count', 0) returns 0, then incremented to 1.
  3. Final Answer:

    Count: 1 -> Option A
  4. Quick Check:

    First visit count starts at 1 [OK]
Hint: First session count starts at 1 after increment [OK]
Common Mistakes:
  • Assuming count starts at 0 output
  • Expecting count to be 2 on first visit
  • Forgetting to set secret_key causing errors
4. Identify the error in this Flask code using session:
from flask import Flask, session
app = Flask(__name__)

@app.route('/')
def index():
    session['user'] = 'Bob'
    return f"User: {session['user']}"
medium
A. Missing import of session
B. Missing app.secret_key causing session error
C. Incorrect session syntax
D. Route decorator syntax error

Solution

  1. Step 1: Check for secret_key setting

    Flask sessions require app.secret_key to encrypt session data securely.
  2. Step 2: Identify missing secret_key

    The code does not set app.secret_key, so session will raise an error or not work properly.
  3. Final Answer:

    Missing app.secret_key causing session error -> Option B
  4. Quick Check:

    Secret key missing breaks session [OK]
Hint: Always set app.secret_key before using session [OK]
Common Mistakes:
  • Forgetting to set secret_key
  • Assuming session works without secret_key
  • Misreading import or decorator syntax
5. You want to store a user's preferred language in the Flask session and ensure it persists across requests. Which code snippet correctly sets and retrieves this value safely?
hard
A. session['lang'] = 'en' lang = session['language']
B. session['lang'] = 'en' lang = session['lang']
C. session.set('lang', 'en') lang = session.get('lang')
D. session['lang'] = 'en' lang = session.get('lang', 'default')

Solution

  1. Step 1: Set session value correctly

    Assigning with session['lang'] = 'en' is correct to store the language.
  2. Step 2: Retrieve session value safely

    Using session.get('lang', 'default') safely gets the value or returns 'default' if missing, avoiding errors.
  3. Final Answer:

    session['lang'] = 'en'\nlang = session.get('lang', 'default') -> Option D
  4. Quick Check:

    Use session.get() to avoid KeyError [OK]
Hint: Use session.get() to safely read session keys [OK]
Common Mistakes:
  • Using session.set() which does not exist
  • Accessing wrong key causing KeyError
  • Not providing default value when reading session
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard