Kemudian buka http://127.0.0.1:5000/about dan lihat tampilan barunya dengan CSS.
💡 Catatan: Flask secara otomatis mencari file di dalam folder static, jadi gunakan url_for('static', filename='style.css') untuk memastikan CSS termuat dengan benar.
5. Routing Dinamis
Kita juga membuat route dinamis berdasarkan input dari user yang dikenal dengan variable-name
Kita tambahkan parameter dengan tipe data tertentu seperti string, integer dan lainnya
Misalnya kita ingin menambah nama yang dinamis maka tambahkan route('/nama/<string:nama>') dengan fungsi getnama() yang menggunakan parameter nama
@app.route('/nama/<string:nama>')
def getnama(nama):
return "nama anda adalah {}".format(nama)
Tambahkan nama anda disetelah parameter nama dan jalankan kembali aplikasinya
6. Variabel dalam Python Flask Framework
Di Flask, variabel dapat digunakan untuk menyimpan dan mengelola data dalam aplikasi. Variabel bisa digunakan dalam routing, template HTML, dan view functions. Berikut beberapa cara penggunaan variabel di Flask:
6.1. Variabel dalam Routing
Kita bisa meneruskan variabel dalam URL dan menggunakannya di fungsi view.
Contoh: Menampilkan Nama dari URL
from flask import Flask
app = Flask(__name__)
@app.route('/user/<name>') # Variabel name diambil dari URL
def user(name):
return f"Hello, {name}!"
if __name__ == '__main__':
app.run(debug=True)
📝 Penjelasan:
<name> adalah variabel dalam URL.
Flask otomatis menangkap nilainya dan mengirimkan ke fungsi user(name).
Coba akses http://127.0.0.1:5000/user/Ali, maka tampil: "Hello, Ali!"
6.2. Variabel dengan Tipe Data dalam Routing
Flask bisa menangani tipe data lain selain string, seperti int, float, path.
Contoh: ID Angka
@app.route('/user/<int:user_id>') # Hanya menerima angka
def user_id(user_id):
return f"User ID: {user_id}"
<int:user_id> memastikan hanya angka yang diterima.
Coba akses http://127.0.0.1:5000/user/10, akan menampilkan: "User ID: 10".
6.3. Mengirim Variabel ke Template HTML
Variabel bisa diteruskan ke halaman HTML menggunakan render_template().
Contoh: Mengirim Nama ke Template
Kode Flask (app.py)
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/profile/<name>')
def profile(name):
return render_template('profile.html', username=name)
if __name__ == '__main__':
app.run(debug=True)
<ul>
{% for user in users %}
{% if user.role == "admin" %}
<li><strong>{{ user.name }} (Admin)</strong></li>
{% else %}
<li>{{ user.name }}</li>
{% endif %}
{% endfor %}
</ul>
✅ Hasilnya di Browser:
- Ali (Admin)
- Budi
- Citra (Admin)
- Dewi
7.4. loop.index dalam for
Flask menyediakan loop.index untuk menampilkan nomor urut dalam for loop.
Contoh: Menampilkan Nomor Urut
<ul>
{% for user in users %}
<li>{{ loop.index }}. {{ user }}</li>
{% endfor %}
</ul>
✅ Hasilnya di Browser:
1. Ali
2. Budi
3. Citra
4. Dewi
8. If Elif and Else
Dalam Flask, elif (else if) juga bisa digunakan dalam template HTML menggunakan Jinja2. Ini berguna untuk membuat kondisi lebih kompleks dalam tampilan HTML.
1. if, elif, dan else dalam Template Flask
Kita bisa menggunakan elif untuk menangani berbagai kondisi.
Contoh: Menampilkan Pesan Berdasarkan Skor
Kode Flask (app.py)
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/nilai/<int:score>')
def nilai(score):
return render_template('nilai.html', score=score)
if __name__ == '__main__':
app.run(debug=True)
✅ Jika diakses dengan http://127.0.0.1:5000/nilai/95, maka tampil:
"Nilai Anda: 95 - Sangat Baik! 🎉"
✅ Jika diakses dengan http://127.0.0.1:5000/nilai/70, maka tampil:
"Nilai Anda: 70 - Cukup 😊"
2. for dengan if-elif-else
Kita juga bisa menggabungkan loop dengan if-elif-else.