pip install flask
mkdir flask_session_cookies
cd flask_session_cookies
Create app.py
and add the basic Flask setup:
from flask import Flask, render_template, request, redirect, url_for, session, make_response
app = Flask(__name__)
app.secret_key = 'your_secret_key' # Required for session handling
@app.route("/")
def home():
return render_template("index.html")
if __name__ == "__main__":
app.run(debug=True)
Modify app.py
to add routes for setting and retrieving cookies:
@app.route("/set_cookie")
def set_cookie():
response = make_response("Cookie has been set!")
response.set_cookie("username", "FlaskUser", max_age=60*60*24) # Expires in 1 day
return response
@app.route("/get_cookie")
def get_cookie():
username = request.cookies.get("username")
return f"Stored Cookie: {username}" if username else "No cookie found!"
Step 3: Deleting a Cookie
@app.route("/delete_cookie")
def delete_cookie():
response = make_response("Cookie deleted!")
response.set_cookie("username", "", expires=0)
return response
Modify app.py
to store user data in a session:
@app.route("/set_session")
def set_session():
session["user"] = "JohnDoe"
return "Session set for user!"
@app.route("/get_session")
def get_session():
user = session.get("user")
return f"Stored Session: {user}" if user else "No session found!"
Step 5: Deleting a Session
@app.route("/delete_session")
def delete_session():
session.pop("user", None)
return "Session data cleared!"
Inside the templates
folder, create index.html
:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Flask Sessions & Cookies</title>
</head>
<body>
<h1>Flask Session & Cookies Example</h1>
<form action="/login" method="POST">
<label>Username:</label>
<input type="text" name="username" required>
<button type="submit">Login</button>
</form>
<p><a href="/logout">Logout</a></p>
</body>
</html>
Modify app.py
to handle user login using sessions:
@app.route("/login", methods=["POST"])
def login():
session["user"] = request.form["username"]
return redirect(url_for("dashboard"))
@app.route("/dashboard")
def dashboard():
if "user" in session:
return f"Welcome {session['user']}! <br><a href='/logout'>Logout</a>"
else:
return redirect(url_for("home"))
@app.route("/logout")
def logout():
session.pop("user", None)
return redirect(url_for("home"))
python app.py
Open http://127.0.0.1:5000/
, enter a username, and click Login.
In this guide, you learned how to:
✅ Use cookies to store small data on the client-side
✅ Use sessions to store user data securely on the server
✅ Build a simple login/logout system with sessions
Now, you can manage user authentication and stateful data in your Flask applications! 🚀