
Belajar Flask - Bagian 8
Mini Project: Buku Tamu
oleh: Suryo Adhy Chandra, ST
Buku Tamu (guestbook) adalah halaman website yang memungkinkan pengunjung meninggalkan pesan, seperti komentar atau ucapan. Semua pesan yang masuk akan ditampilkan ke pengunjung lain.
1. Fitur yang akan dibuat
- Form untuk mengisi nama dan pesan
- Menampilkan semua pesan yang pernah dikirim
- Pesan terbaru muncul paling atas
2. Kode app.py
from flask import Flask, render_template, request, redirect
app = Flask(__name__)
daftar_pesan = [
{"nama": "Budi", "pesan": "Websitenya keren!"},
{"nama": "Sinta", "pesan": "Semangat belajarnya!"},
]
@app.route("/", methods=["GET", "POST"])
def index():
if request.method == "POST":
nama = request.form["nama"]
pesan = request.form["pesan"]
daftar_pesan.insert(0, {"nama": nama, "pesan": pesan})
return redirect("/")
return render_template("buku_tamu.html", daftar_pesan=daftar_pesan)
if __name__ == "__main__":
app.run(debug=True)
daftar_pesan.insert(0, ...) dipakai supaya pesan baru diletakkan di posisi paling
awal list, sehingga tampil paling atas.
3. Template templates/buku_tamu.html
<h1>Buku Tamu</h1>
<form method="POST">
<input type="text" name="nama" placeholder="Nama kamu" required>
<br>
<textarea name="pesan" placeholder="Tulis pesan..." required></textarea>
<br>
<button type="submit">Kirim Pesan</button>
</form>
<hr>
{% for pesan in daftar_pesan %}
<p>
<b>{{ pesan.nama }}</b>:
{{ pesan.pesan }}
</p>
{% endfor %}
Atribut
required pada <input> dan <textarea>
membuat browser otomatis meminta pengunjung mengisi kolom tersebut sebelum mengirim form.
4. Coba jalankan
Jalankan dengan python app.py, lalu buka http://127.0.0.1:5000/ dan
coba kirim beberapa pesan dari nama yang berbeda-beda.