Session & Flash Messages
Penjelasan
Session di Flask adalah dictionary khusus (session['key'] = value) yang datanya disimpan di cookie sisi client, ditandatangani secara kriptografis memakai SECRET_KEY agar tidak bisa dipalsukan (walau tetap bisa dibaca isinya, jadi jangan simpan data sensitif langsung di session). Flash messages adalah pesan sekali-tampil yang biasa dipakai untuk notifikasi sukses/error setelah redirect, misalnya 'Produk berhasil ditambahkan'. flash(pesan) menyimpan pesan ke session sementara, lalu get_flashed_messages() di template mengambil dan langsung menghapusnya setelah ditampilkan sekali.
Contoh Konsep
from flask import Flask, session, flash, redirect, url_for
app = Flask(__name__)
app.secret_key = 'rahasia-banget'
@app.route('/set-keranjang')
def set_keranjang():
session['jumlah_item'] = 3
flash('Item ditambahkan ke keranjang!')
return redirect(url_for('keranjang'))
@app.route('/keranjang')
def keranjang():
jumlah = session.get('jumlah_item', 0)
return f'Ada {jumlah} item di keranjang'
<!-- di template -->
{% for pesan in get_flashed_messages() %}
<p class="alert">{{ pesan }}</p>
{% endfor %}
Praktikum
Lengkapi route logout agar menghapus session dan menampilkan flash message 'Kamu sudah logout'.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
SECRET_KEY untuk production sebaiknya diambil dari environment variable, bukan ditulis langsung di kode — misalnya app.secret_key = os.environ.get('SECRET_KEY').