Study
Flask

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'.

Editor Latihan

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').