Back
Featured image of post Client Side Session Flask

Client Side Session Flask

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

tampilan set email
tampilan set email

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

get email
get email

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

Referensi

comments powered by Disqus
Built with Hugo
Theme Stack designed by Jimmy