📖 Scenario: You are building a simple web app using Flask. You want to remember a visitor's name using cookies so that when they come back, the app greets them personally.
🎯 Goal: Create a Flask app that sets a cookie with the visitor's name and reads it back to greet them on return visits.
📋 What You'll Learn
Create a Flask app with one route '/'
Set a cookie named 'username' with value 'Alice' when the visitor first arrives
Read the 'username' cookie on subsequent visits
Display a greeting message using the cookie value if it exists
Use Flask's make_response to set cookies
💡 Why This Matters
🌍 Real World
Cookies are used by websites to remember users, keep them logged in, and personalize their experience.
💼 Career
Understanding cookies is essential for web developers to manage user sessions and preferences securely.
Progress0 / 4 steps
1
Set up the Flask app and route
Import Flask and request from flask. Create a Flask app called app. Define a route for '/' with a function called index that returns the string 'Welcome!'.
Flask
Hint
Start by importing Flask and request, then create the app and a simple route that returns a welcome message.
2
Add a variable to hold the cookie name
Create a variable called cookie_name and set it to the string 'username'.
Flask
Hint
This variable will store the name of the cookie we use to remember the visitor.
3
Check for the cookie and set it if missing
In the index function, import make_response from flask. Use request.cookies.get(cookie_name) to get the cookie value and store it in username. If username is None, create a response with the text 'Hello, new visitor!' and set a cookie named cookie_name with value 'Alice'. Otherwise, create a response with the text f'Welcome back, {username}!'. Return the response.
Flask
Hint
Use request.cookies.get() to read the cookie. Use make_response() to create a response and set_cookie() to add a cookie.
4
Add the app run command
Add the standard Flask app run block: if __name__ == '__main__': and inside it call app.run(debug=True).
Flask
Hint
This block runs the Flask app when you start the script.
Practice
(1/5)
1. What is the main purpose of cookies in HTTP when using Flask?
easy
A. To store small pieces of data on the user's browser for later use
B. To increase the speed of the Flask server
C. To encrypt user data on the server
D. To manage database connections automatically
Solution
Step 1: Understand what cookies do in HTTP
Cookies store small data on the user's browser to remember information between requests.
Step 2: Identify Flask's use of cookies
Flask uses cookies to save user preferences or login info on the client side.
Final Answer:
To store small pieces of data on the user's browser for later use -> Option A
Quick Check:
Cookies store data on browser = D [OK]
Hint: Cookies save small data on browser, not server speed [OK]
Common Mistakes:
Thinking cookies speed up the server
Confusing cookies with encryption
Assuming cookies manage databases
2. Which Flask method is used to set a cookie in the HTTP response?
easy
A. request.set_cookie()
B. request.cookies()
C. response.set_cookie()
D. response.cookies()
Solution
Step 1: Recall Flask's cookie setting method
Cookies are set on the response object, not the request.
Step 2: Identify the correct method
The method to set a cookie is set_cookie() on the response object.
Final Answer:
response.set_cookie() -> Option C
Quick Check:
Set cookie on response = C [OK]
Hint: Set cookies on response, read from request [OK]
Common Mistakes:
Using request.set_cookie() instead of response.set_cookie()
Confusing request.cookies() as a setter
Using response.cookies() which does not exist
3. Given this Flask code snippet, what will be printed when the client sends a cookie named 'user' with value 'Alice'?
from flask import Flask, request
app = Flask(__name__)
@app.route('/')
def index():
user = request.cookies.get('user')
return f'Hello, {user}!'
medium
A. Hello, Alice!
B. Hello, !
C. Hello, None!
D. Hello, user!
Solution
Step 1: Understand how Flask reads cookies
The code uses request.cookies.get('user') to get the cookie value named 'user'.
Step 2: Check the cookie value sent by client
The client sends a cookie 'user' with value 'Alice', so user variable will be 'Alice'.
Final Answer:
Hello, Alice! -> Option A
Quick Check:
Cookie 'user' = Alice, output = A [OK]
Hint: request.cookies.get('name') returns cookie value or None [OK]
Common Mistakes:
Assuming cookie value is None if present
Forgetting to use .get() method
Confusing cookie name with literal string
4. What is wrong with this Flask code that tries to set a cookie?
C. from flask import request
@app.route('/')
def index():
request.set_cookie('visited', 'yes', max_age=86400)
return 'Welcome'
D. from flask import make_response
@app.route('/')
def index():
resp = make_response('Welcome')
resp.set_cookie('visited', 'yes', max_age=86400)
return resp
Solution
Step 1: Identify how to create a response object
Use make_response() to create a response object to set cookies.
Step 2: Set cookie with expiration
Use set_cookie() with max_age=86400 (seconds in 1 day) to set expiration.
Step 3: Check each option
from flask import make_response
@app.route('/')
def index():
resp = make_response('Welcome')
resp.set_cookie('visited', 'yes', max_age=86400)
return resp correctly uses make_response and set_cookie with max_age. Others either set cookie on string or request or use wrong syntax.
Final Answer:
resp.set_cookie('visited', 'yes', max_age=86400) -> Option D
Quick Check:
Use make_response + set_cookie + max_age = A [OK]
Hint: Use make_response and set_cookie with max_age for expiry [OK]
Common Mistakes:
Setting cookie on string instead of response object
Trying to set cookie on request object
Using resp.cookies dict instead of set_cookie method
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.