Ahmad Rosid

https://ahmadrosid.com The more I learn, the more I realize how much I don’t know.

May 28, 2018

Flask rounting

Bagaimana proses routing pada aplikasi Flask.

Routing

Pada tutorial sebelumnya kita sudah bahas cukup banyak komponen - komponen yang terdapat pada framework flask. Selanjutnya kita akan bahas salah satu komponen yang cukup penting pada framework flask ini.

Pada aplikasi web salah satu komponen yang paling penting adalah routing, yang dimana dengan komponen ini kita bisa mengatur interakasi dari user kedalam aplikasi kita. Tujuan dari routng ini adalah supanya user lebih mudah memahami navigasi pada website kita. Keuntungan kita dari sisi pengembang adalah kita dapat mengatur navigasi pada web kita dengan mudah.

Routing Pada Flask

Ok sebelum lanjut koding kita akan bahas dulu rounting pada aplikasi flask, mari kita lihat kode berikut ini.

          
from flask import Flask
app = Flask(__name__)

def index():
  return "Hello world."
app.add_url_rule('/', 'index', index)

app.run()
          
        

Kita juga bisa dengan cara yang lebih simple untuk membuat routing pada aplikasi flask ini.

          
@app.route('/')
def index():
  return "Hello world."
          
        

Custom Routing

Diatas kita sudah sedikit bahas tentang route dan bagaimana membuatnya, nah sekarang kita coba yang agak lebih sulit sedikit. Sekarang bagaimana kita mengambil data dari route dengan menginjectkan varibale kedalam route. Kita bisa lakukan seperti ini :

          
@app.route('/hello/')
def hello_name(name):
   return 'Hello %s!' % name
          
        

Nah pada browser akan kita akses sepert ini :

          
http://127.0.0.1:5000/hello/Ahmad%20Rosid
          
        

Dan hasilnya akan serperti ini :

          
Hello Ahmad Rosid!
          
        

Sekarang bagaimana kalau kita perlu membatasi type variable

          
@app.route('/blog/')
def show_blog(postID):
   return 'Blog Number %d' % postID
          
        

Pada route diatas jika di akses maka seperti rule nya :

          
// Benar karena menggunakan integer pada varibale posID
// Hasilnya : Blog Number 1
http://127.0.0.1:5000/blog/1

// Salah karena seperti ini
http://127.0.0.1:5000/blog/tutorial
          
        

Nah sekarang kita coba dengan tipe data yang lain misalanya kita membuat route seperti ini :

          
@app.route('/rev/')
def revision(revNo):
   return 'Revision Number %f' % revNo
          
        

Maka seperti rule nya :

          
// Benar karena menggunakan type variable float pada revNo
// Hasilnya : Revision Number 1.200000
http://127.0.0.1:5000/rev/1.2

// Salah jika seperti ini
http://127.0.0.1:5000/rev/12
          
        

Http Method

Dalam membangun web kita menggunakan protokol http untuk transformasi data, pada protocol http ini terdapat beberapa method yang bisa kita gunakan untuk type routing pada aplikasi kita.

No Nama Keterangan
1 GET Method get berguna untuk meminta data dari server untuk di berikan ke user.
2 HEAD Hampir mirip seperti method akan tetapi tidak ada response.
3 POST Method post berguna untuk mengirimkan data dari user ke server.
2 PUT Method put ini juga hampir mirip dengan post akan tetapi kalau di post itu bertujuan untuk menambahkan database, kalau dengan put maka kita akan mereplace data yang sudah ada atau mengupdate data.
4 DELETE Method delete berguna untuk meminta server menghapus data tertentu oleh user.

Nah berikut ini adalah cara mengimplementasikan routing http method pada aplikasi flask. Secara default http method dari route pada flask ini adalah GET, akan tetapi jika kita ingin merubahnya bisa dengan memberi nilai variable methods pada route.

          
@app.route('/login', methods=['POST'])
def index():
  return "You have logined."

@app.route('/login', methods=['GET'])
def index():
  return "Login please."
          
        

Dari contoh diatas kita juga bisa jadikan lebih sederhana mendjadi seperti ini :

          
from flask import request

@app.route('/login', methods=['GET','POST'])
def index():
  if request.method == 'POST'
    return "You have logined."
  return "Login please."
          
        

Hal yang penting di pahami dari penggunaan http method ini adalah seperti, jika ingin mengambil data menggunakan GET, jika ingin menambahkan data maka dengan POST, ingin merubah data dengan PUT dan untuk mengghapus data menggunakan DELETE.

Next

© 2017 Codecast.id