Saturday, May 12, 2012

Belajar Flask: URI

Cara kedua untuk memerintahkan atau mengirimkan informasi ke suatu aplikasi web adalah dengan memakai URI. Ini juga merupakan cara yang dianjurkan oleh konsep REST.

URI adalah singkatan untuk Uniform Resource Identifier atau standar (=uniform) penamaan (=identifier) suatu sumber daya (=resource) di web. Sumber daya disini bisa berupa: gambar, video, audio, berkas, ebook, halaman HTML, berkas PDF, dll. Sedangkan URL (Uniform Resource Locator) merupakan alamat dimana URI itu bisa ditemukan. Dalam URI tidak dikenal istilah query string sehingga pemakaiannya seperti pada cara pertama sangat dihindari disini, dan juga oleh konsep REST.

Kalau tidak bisa memakai query string terus bagaimana kita mengirim parameter? Dengan menanggap path itu merupakan deklarasi parameter. Misalnya alamat pada contoh pada tulisan sebelum ini tentang query string:
http://localhost:8080?par1=rahmad&par2=dawood
dapat kita tulis ulang menjadi:
http://localhost:8080/rahmad/dawood
Pada contoh ini, saya telah menetapkan directory level pertama sebagai nilai dari parameter par1 dan directory level kedua sebagai nilai dari parameter par2.

Terus bagaimana memakai konsep URI ini di Flask?

Dengan memakai contoh yang sama dengan yang ada pada tulisan sebelum ini tentang pemakaian query string, maka template untuk dasar.html dan apakabar.html tidak akan mengalami perubahan. Tetapi template pertama.html harus kita ubah karena URL-nya berubah dari memakai query string ke memakai URI. Berkas pertama.html sekarang menjadi:
{% extends "dasar.html" %}

{% block isi %}
    Kirim salam ke siapa?
    <ul>
        <li>
            <a href="/apakabar/Rahmad/Dawood">
                Rahmad Dawood
            </a>
        </li>
    </ul>
{% endblock %}
Terus program python-nya menjadi:
from flask import Flask, render_template, request
from flask import redirect, url_for

app = Flask(__name__)

@app.route("/")
def pertama():
    return render_template("pertama.html")

@app.route("/apakabar/<depan>/<belakang>")
def apakabar(depan, belakang):
    return render_template("apakabar.html", 
                           namaDepan=depan,
                           namaBelakang=belakang)

app.run(debug=True, host="127.0.0.1", port=8080)
Mari kita bedah perubahan pada program ini:

  • Baris 10, pada  pemetaan URL, ada tambahan <depan> dan <belakang> yang menandakan bahwa kedua elemen ini merupakan parameter yang wajib ada pada perintah ini. Perhatikan juga fungsi apakabar sekarang memerlukan dua parameter yang namanya sama dengan yang tercatat dibagian pemetaan URL, yaitu: depan dan belakang;
  • Disini perintah if yang sebelumnya ada untuk memeriksa apakah parameter-parameter ini dikirim juga telah hilang karena sudah ditangani langsung oleh Flask;
  • Baris 12-14 adalah proses pengiriman variable depan dan belakang ke template apakabar.html untuk ditampilkan.
Disamping secara konsep lebih kompak juga secara pemrograman lebih gampang! :)


Kembali ke: Belajar Flask


Referensi


No comments:

Post a Comment