Bird
Raised Fist0
Flaskframework~10 mins

Setting and reading cookies in Flask - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to set a cookie named 'username' with value 'Alice'.

Flask
from flask import Flask, make_response
app = Flask(__name__)

@app.route('/')
def index():
    resp = make_response('Setting cookie')
    resp.set_cookie('[1]', 'Alice')
    return resp
Drag options to blanks, or click blank then click option'
Aname
Buser
Cusername
Duser_id
Attempts:
3 left
💡 Hint
Common Mistakes
Using a wrong cookie name like 'user' or 'name' instead of 'username'.
Forgetting to call set_cookie on the response object.
2fill in blank
medium

Complete the code to read the cookie named 'username' from the request.

Flask
from flask import Flask, request
app = Flask(__name__)

@app.route('/get')
def get_cookie():
    user = request.cookies.get('[1]')
    return f'User is {user}'
Drag options to blanks, or click blank then click option'
Auser
Busername
Cname
Dsession
Attempts:
3 left
💡 Hint
Common Mistakes
Using a wrong cookie name like 'user' or 'session'.
Trying to access cookies directly without using request.cookies.get().
3fill in blank
hard

Fix the error in the code to set a cookie with expiration of 1 day.

Flask
from flask import Flask, make_response
from datetime import timedelta
app = Flask(__name__)

@app.route('/set')
def set_cookie():
    resp = make_response('Cookie set')
    resp.set_cookie('token', 'abc123', max_age=[1])
    return resp
Drag options to blanks, or click blank then click option'
A86400
Btimedelta(days=1)
C24*60*60*1000
DNone
Attempts:
3 left
💡 Hint
Common Mistakes
Passing a timedelta object instead of seconds.
Using milliseconds instead of seconds.
Passing None which disables expiration.
4fill in blank
hard

Fill both blanks to set a cookie named 'sessionid' with value 'xyz' that expires in 2 hours.

Flask
from flask import Flask, make_response
app = Flask(__name__)

@app.route('/session')
def session_cookie():
    resp = make_response('Session cookie set')
    resp.set_cookie('[1]', '[2]', max_age=7200)
    return resp
Drag options to blanks, or click blank then click option'
Asessionid
Buserid
Cxyz
Dabc
Attempts:
3 left
💡 Hint
Common Mistakes
Swapping cookie name and value.
Using wrong cookie names or values.
5fill in blank
hard

Fill all three blanks to read a cookie named 'auth' and return 'Logged in' if it exists, else 'Not logged in'.

Flask
from flask import Flask, request
app = Flask(__name__)

@app.route('/auth')
def check_auth():
    token = request.cookies.get('[1]')
    if token [2] None:
        return '[3]'
    else:
        return 'Not logged in'
Drag options to blanks, or click blank then click option'
Aauth
B!=
CLogged in
D==
Attempts:
3 left
💡 Hint
Common Mistakes
Using wrong cookie name.
Using wrong comparison operator.
Returning wrong strings.

Practice

(1/5)
1. What is the main purpose of using cookies in a Flask web application?
easy
A. To increase the speed of the Flask server
B. To run server-side scripts automatically
C. To change the HTML structure of a webpage
D. To store small pieces of data on the user's browser for later use

Solution

  1. Step 1: Understand what cookies do

    Cookies store small data on the user's browser to remember information like login status or preferences.
  2. Step 2: Identify the correct purpose in Flask context

    Flask uses cookies to save data on the client side, not to run server scripts or change server speed.
  3. Final Answer:

    To store small pieces of data on the user's browser for later use -> Option D
  4. Quick Check:

    Cookies save data on browser = C [OK]
Hint: Cookies save data on browser, not server tasks [OK]
Common Mistakes:
  • Thinking cookies run server scripts
  • Confusing cookies with server speed optimization
  • Believing cookies change webpage HTML structure
2. Which of the following is the correct way to set a cookie named user_id with value 123 in Flask?
easy
A. response.cookies.set('user_id', 123)
B. response.set_cookie('user_id', '123')
C. request.set_cookie('user_id', '123')
D. request.cookies.set('user_id', '123')

Solution

  1. Step 1: Identify the correct method to set cookies

    Cookies are set on the response object using set_cookie method.
  2. Step 2: Check the value type and object used

    The value must be a string, so '123' is correct. Also, setting cookies on request object is invalid.
  3. Final Answer:

    response.set_cookie('user_id', '123') -> Option B
  4. Quick Check:

    Use response.set_cookie with string value = A [OK]
Hint: Use response.set_cookie with string values [OK]
Common Mistakes:
  • Using request object to set cookies
  • Passing integer instead of string as cookie value
  • Calling set_cookie on request.cookies
3. Given this Flask route code, what will be the output when accessing /get_cookie after setting the cookie username to alice?
from flask import Flask, request, make_response
app = Flask(__name__)

@app.route('/set_cookie')
def set_cookie():
    resp = make_response('Cookie Set')
    resp.set_cookie('username', 'alice')
    return resp

@app.route('/get_cookie')
def get_cookie():
    user = request.cookies.get('username')
    return f'User: {user}'
medium
A. User: alice
B. User: None
C. User: username
D. Error: Cookie not found

Solution

  1. Step 1: Understand cookie setting route

    The /set_cookie route sets a cookie named 'username' with value 'alice' on the response.
  2. Step 2: Understand cookie reading route

    The /get_cookie route reads the 'username' cookie from the request and returns it in the string.
  3. Final Answer:

    User: alice -> Option A
  4. Quick Check:

    Cookie 'username' = 'alice' read correctly = A [OK]
Hint: Set cookie first, then read with request.cookies.get() [OK]
Common Mistakes:
  • Expecting cookie value before setting it
  • Confusing cookie name with value
  • Assuming error if cookie missing without checking
4. Identify the error in this Flask code snippet that tries to read a cookie named session_id:
from flask import Flask, request
app = Flask(__name__)

@app.route('/check')
def check():
    session = request.cookies['session_id']
    return f'Session: {session}'
medium
A. Should use response.cookies instead of request.cookies
B. Cookie name must be capitalized as 'Session_id'
C. Using square brackets to access cookie may cause KeyError if cookie missing
D. Flask does not support reading cookies

Solution

  1. Step 1: Check how cookie is accessed

    The code uses request.cookies['session_id'] which raises KeyError if cookie is missing.
  2. Step 2: Suggest safer method

    Using request.cookies.get('session_id') returns None if cookie missing, avoiding error.
  3. Final Answer:

    Using square brackets to access cookie may cause KeyError if cookie missing -> Option C
  4. Quick Check:

    Access cookie safely with get() to avoid errors = B [OK]
Hint: Use request.cookies.get() to avoid KeyError [OK]
Common Mistakes:
  • Using response.cookies to read cookies
  • Assuming cookie names are case-insensitive
  • Ignoring possibility of missing cookies causing errors
5. You want to create a Flask route that sets a cookie named theme with value dark that expires in 7 days. Which code snippet correctly does this?
hard
A. resp.set_cookie('theme', 'dark', max_age=7*24*60*60)
B. resp.set_cookie('theme', 'dark', expires=7)
C. resp.set_cookie('theme', 'dark', max_age=7)
D. resp.set_cookie('theme', 'dark', expires='7 days')

Solution

  1. Step 1: Understand cookie expiration parameters

    To set expiration, use max_age in seconds or expires as a datetime object.
  2. Step 2: Calculate 7 days in seconds and check syntax

    7 days = 7*24*60*60 seconds. resp.set_cookie('theme', 'dark', max_age=7*24*60*60) uses max_age correctly with this calculation.
  3. Final Answer:

    resp.set_cookie('theme', 'dark', max_age=7*24*60*60) -> Option A
  4. Quick Check:

    Use max_age in seconds for 7 days = D [OK]
Hint: Use max_age in seconds for cookie expiry [OK]
Common Mistakes:
  • Passing expires as integer days instead of seconds or datetime
  • Using string '7 days' which is invalid
  • Confusing max_age and expires parameters
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