1.4.6 User Sessions - dvrg/flask-web-development GitHub Wiki
Sebelum menggunakan session sebaiknya kamu mengetahui apa itu session. Session hampir mirip dengan cookie, perbedaannya yaitu jika cookie disimpan di browser namun session disimpan di sisi server, serta data session yang disimpan akan hilang apabila user telah meninggalkan server tersebut (tutup browser). Jadi session dapat diartikan tempat menyimpan data yang disimpan didalam server, yang data tersebut akan hilang apabila user telah meninggalkan server, atau dalam konteks ini user telah menutup browser. Karena data session disimpan pada server maka session lebih aman untuk menyimpan data-data penting bila dibandingkan dengan cookie, cara menggunakannya sebagai berikut:
Ubahlah kode app.py
kamu hingga seperti ini:
# app.py: menggunakan session
from flask import Flask, render_template, url_for, redirect, session
...
@app.route('/', methods=['GET', 'POST'])
def index():
form = UserForm()
if form.validate_on_submit():
session['name'] = form.name.data
return redirect(url_for('user', name=session.get('name')))
return render_template('index.html, form=form, name=session.get('name')
...
Ubahlah kode index.html
sebagai berikut:
# templates/index.html: merubah link name='David'
...
<div class="container">
{% if name %}
<a href="{{ url_for('user', name=name) }}" class="badge badge-pill badge-danger">User {{ name }}</a>
{% endif %}
<form method="POST">
...
</div>
...
Memberikan kondisi ke template kamu karena ketika session name
tidak lagi tersimpan di sisi server, maka link yang di dalam kondisi tidak dijalankan. Dan ketika kamu menginputkan nama kamu. Secara otomatis nilai dari form name akan tersimpan di session.