okay kita lanjutkan lagi belajar flasknya, disini kita akan belajar menyimpan session di browser menggunakan flask
nah disini kita akan menggunakan session pada flask,
Deskripsi Kasus
disini kita akan menggunakan studi kasus sederhana misalnya kamu input email kemidian kita akan menyimpan session dari email tadi,
Membuat Makefile
nah ditahap ini kita akan membuat otomasi menggunakan makefile
buatfile Makefile
kemudian isi seperti ini
run:
export FLASK_APP=app.py && export FLASK_ENV=development && flask run
kemudian jalankan dengan perintah
make run
Membuat Project
pertama kita buat file app.py
disini kita membuat beberapa route misalnya
- get_email
- set_email
- delete session
Setting Session Data
dalam route ini coba kita coba melakukan setting session seperti ini
@app.route("/set_email", methods=["GET", "POST"])
def set_email():
if request.method == "POST":
# save session
session["email"] = request.form["email_address"]
return render_template("set_email.html")
kemudian kita membuat file set_email.html
lalu membuat form menggunakan method POST
seperti ini
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Set Email</title>
<link rel="stylesheet" href="{{ url_for('static', filename='bulma.min.css') }}">
</head>
<body>
<div class="field">
<form class="control has-icons-left has-icons-right" method="POST">
<label class="label" for="email">Enter your email address:</label>
<input class="input" type="email" id="email" name="email_address" required />
<button class="button is-success" type="submit">Submit</button>
</form>
</body>
</html>
nah kemudian jika kita jalankan maka akan jadi seperti ini
Getting Session Data
selanjutnya kita akan mengambil data session yang tadi sudah kita set pada chapter sebelumnya
nah disini kita membuat routing untuk mendapatkan session kita membuat route seperti ini
@app.route("/get_email")
def get_email():
return render_template("get_email.html")
maka akan otomatis session kita tersimpan
kelemahan
disini terdapat beberapa kelemahan misalnya, ketika kita buka di browser berbeda atau incognito window maka session tersebut tidak akan sama alias baru lagi
Delete Session Data
nah disini kita akan belajar bagaimana cara delete session yang telah kita ambil misalnya kita membuat routes seperti ini
# delete session email
@app.route("/delete_email")
def delete_email():
# Clear the email stored in the session object
session.pop("email", default=None)
return "<h1>Session deleted!</h1>"
kemudian template nya kita return html biasa