https://ahmadrosid.com The more I learn, the more I realize how much I don’t know.
May 28, 2018
Bagaimana proses routing pada aplikasi Flask.
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.
Sebelumnya ( Pendalaman Flask )
Komponen - komponen pada aplikasi flask
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.
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."
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
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.
Selanjutnya - Flask Static Files
Mengakses statik file atau file yang tidak berubah.
© 2017 Codecast.id