Back

System Routing Statis dan Dinamis di Flask

pada materi sebelumnya kita sudah belajar sedikit tentang apa itu System Routing, contoh kecil misalnya kita mau membuat halaman Login tentunya kita harus menentukan rute bagaimana kita bisa mengakses halaman login itu, pada materi kali ini kita akan belajar mengenai dua jenis routing yang dapat kita gunakan untuk aplikasi web menggunakan Flask

Static Routing atau Routing Statis

artinya kita bisa membuat rute halaman secara manual misalnya kita membuat rute baru bernama /login, buka file app.py yang telah dibuat sebelumnya lalu tambahkan

# rute baru bernama Login
@app.route('/login')
def show_login():
    return "kamu sedang berada di halaman <b>LOGIN</b>"

hingga semua script app.py seperti ini

# import Modul Flask
from flask import Flask

# instance dari objeknya
app = Flask(__name__)

# mengenal rute di Flask
@app.route('/')
# membuat Fungsi untuk nenampilkan HelloWorld
def index():
    return "halo dunia debug flask on"

# rute baru bernama Login
@app.route('/login')
def show_login():
    return "kamu sedang berada di halaman <b>LOGIN</b>"

if __name__=='__main__':
    app.run(debug=True)

kemudian coba buka browser lalu masukan url localhost:5000/login atau 127.0.0.1:5000/login

maka hasilnya akan seperti ini

static route flask
static route flask

Routing Dinamis

pada kasus tertentu misalnya ingin mengakses halaman user contohnya ketika ingin mengakses halaman profile di instagram misal

https://instagram.com/pery

formatnya seperti ini

alamat-url/nama-profile

nah halaman nama profile tentu berbeda pada setiap akun, oleh karena itu kita butuh rute yang dibuat secara otomatis berdasarkan parameter tertentu, atau disebut juga routing dinamis, lalu implementasinya di flask pada kasus ini misalnya kita mau buat halaman profile yang dimana isinya dapat berubah secara dinamis, kita buat rute baru seperti ini, buka kembali file app.py

# nama file: app.py

# membuat rute baru dengan parameter
@app.route('/lihat-profile/<username>')
def lihat_profile(username):
    return "Selamat datang di halaman profile kamu %s" % username

kemudian coba buka browser lalu masukan url http://localhost:5000/lihat-profile/nama-profile atau 127.0.0.1:5000/

contoh hasilnya adalah

params1
params1

params2
params2

params3
params3

params4
params4

Membuat Rute Dinamis dengan Tipe Data tertentu

pada kasus tertentu kita pasti butuh url dinamis yang berbentuk angka contohnya kita ada suatu blog yang menampilkan beberapa postingan berdasarkan angka misal

alamat-url/postigan/1

nah halaman postingan/ yang mempunyai parameter hanya berupa angka,float atau tipe data tertentu ini bisa dibuat dengan cara menentukan tipe data apa yang hanya dipakai di rute ini contoh, buat rute baru di file app.py

# membuat rute baru dengan spesifik tipe data
@app.route('/postingan/<int:post_id>')
def lihatpost(post_id):
    return "ini adalah postingan ke %d" % post_id

int:post_id adalah variabel yang isinya hanya boleh berupa integer karena sudah di spesikifasikan dengan int:nama_variabel, nah halaman akan tidak dikenali jika parameter mempunyai tipe data yang berbeda dari yan di spesifikasikan

not found int
not found int

namun jika tipe data sesuai dengan apa yang di spesifikasikan hasilnya

intparams
intparams

intparams1
intparams1

script app.py pada materi kali ini

# nama file: app.py
# materi: routing statis dan dinamis di flask

# import Modul Flask
from flask import Flask

# instance dari objeknya
app = Flask(__name__)

# mengenal rute di Flask
@app.route('/')
# membuat Fungsi untuk nenampilkan HelloWorld
def index():
    return "halo dunia debug flask on"

# rute baru bernama Login
@app.route('/login')
def show_login():
    return "kamu sedang berada di halaman <b>LOGIN</b>"

# membuat rute baru dengan parameter
@app.route('/lihat-profile/<username>')
def lihat_profile(username):
    return "Selamat datang di halaman profile kamu %s" % username

# membuat rute baru dengan spesifik tipe data
@app.route('/postingan/<int:post_id>')
def lihatpost(post_id):
    return "ini adalah postingan ke %d" % post_id

if __name__=='__main__':
    app.run(debug=True)

Referensi

  • Flask Documentations
comments powered by Disqus
Built with Hugo
Theme Stack designed by Jimmy