Belajar Flask - Bagian 5
Flask: Route dan Template

oleh: Suryo Adhy Chandra, ST

Website biasanya punya lebih dari satu halaman, misalnya halaman utama, halaman "Tentang Kami", atau halaman khusus untuk setiap siswa. Di Flask, tiap halaman diatur menggunakan route.

1. Membuat beberapa route

Kita bisa menambahkan beberapa @app.route() dalam satu file app.py untuk membuat beberapa halaman sekaligus.

from flask import Flask app = Flask(__name__) @app.route("/") def home(): return "Ini halaman utama" @app.route("/tentang") def tentang(): return "Ini halaman tentang kami" if __name__ == "__main__": app.run(debug=True)

Sekarang website punya dua alamat: / untuk halaman utama, dan /tentang untuk halaman tentang kami.

2. Route dengan data di dalam alamat

Flask juga bisa membaca data langsung dari alamat URL. Contohnya untuk menyapa nama yang berbeda-beda.

@app.route("/halo/<nama>") def halo(nama): return "Halo, " + nama + "!"

Jika alamat /halo/budi dibuka, Flask akan menampilkan Halo, budi!. Bagian <nama> di route otomatis menjadi isi dari parameter nama pada fungsi.

3. Menggunakan template HTML

Ilustrasi alur route dan template Flask

Menulis HTML langsung di dalam kode Python (seperti contoh di atas) tidak praktis untuk halaman yang panjang. Karena itu Flask menyediakan template, yaitu file HTML terpisah yang disimpan di dalam folder bernama templates.

project-flaskku/ ├── app.py └── templates/ └── index.html

Isi file templates/index.html:

<!DOCTYPE html> <html> <head> <title>Halaman Saya</title> </head> <body> <h1>Halo, {{ nama }}!</h1> </body> </html>

Tanda kurung kurawal ganda {{ nama }} adalah bagian dari Jinja2, yaitu bahasa template bawaan Flask. Bagian ini akan otomatis diganti dengan data yang dikirim dari Python.

Isi file app.py untuk menampilkan template tersebut:

from flask import Flask, render_template app = Flask(__name__) @app.route("/halo/<nama>") def halo(nama): return render_template("index.html", nama=nama) if __name__ == "__main__": app.run(debug=True)

Preview hasil (buka /halo/sinta):

Halo, sinta!

Kenapa pakai template? Supaya kode Python (logika) dan kode HTML (tampilan) tidak bercampur jadi satu. Ini membuat website lebih rapi dan mudah dikembangkan, terutama kalau halamannya banyak.
← Kembali Ke Daftar Pelajaran Flask