Login | Search Friday, 24 May 2013
Welcome Guest | Beranda | Artikel | Buku Tamu | About
  Beranda > Artikel > Tutorial > Request 'POST' dan 'GET' Di Pemrograman Python
Request 'POST' dan 'GET' Di Pemrograman Python
Dikirim oleh: Webmaster ( 2010-11-24, 12:51:49 )

Sebuah webapp framework yang kita buat di AppEngine mampu menangani berbagai request yang diterima lewat HTTP dengan menggunakan metode dari class webapp, antara lain get(), post(), head(), options(), put(), delete(), dan trace().

Tapi disini saya hanya akan memberikan contoh sederhana untuk penanganan request yang paling banyak kita gunakan, yaitu post() dan get(). Metode 'POST' sering digunakan untuk penanganan request lewat 'form' sedangkan request 'GET' banyak digunakan untuk penanganan request lewat 'url query'.

Request 'POST' dan 'FORM'

Seperti yang sudah dijelaskan di atas, request 'POST' banyak digunakan untuk menangani pemrosesan data lewat 'form'. Dibawah ini adalah template form dalam contoh yang akan kita bahas disini dan kita simpan dengan nama file 'form_template.html' :

<html>

<head>

<title>Working with Form</title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

</head>



<body>

<form name="form1" method="post" action="./process">


<table width="100%" cellpadding="5">

<tr>

<td width="23%"><h3>Masukan nama Anda</h3></td>

<td width="77%"><input name="nameTxt" type="text" size="50">

<input type="submit" name="Submit" value="Submit"></td>

</tr>


<tr>

<td>&nbsp;</td>

<td>&nbsp;</td>

</tr>

</table>

</form>

</body>

</html>

Sedangkan ini adalah template untuk menampung hasil pemrosesan form yang kita simpan dengan nama file 'post_result.html' yang sudah kita sematkan kode Python yang diapit dengan tag '{%' dan '%}' karena kita akan menggunakan modul template Django :

<html>
<head>
<title>Process Result</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
  {% if the_name %}
<h3>Hello {{ the_name }} thanks for visiting, <a href="./">back</a></h3>
  {% else %}
<h3>Please insert Your name, <a href="./post">back</a></h3>


</body>
</html>

Berikut kelas yang akan menangani request dari 'form' di atas :

class PostResultHandler(webapp.RequestHandler):

    def post(self):

        nama = self.request.get('nameTxt')
        the_value = {'the_name' : nama}

        path = os.path.join(os.path.dirname(__file__), 'post_result.html')

        self.response.out.write(template.render(path, the_value))


Coba perhatikan fungsi kelas di atas 'def post(self)', fungsi ini akan menangani data dengan metode 'POST' dan nilai yang tersimpan di dalam input form dengan nama 'nameTxt' akan 'ditangkap' dengan baris kode berikut :

nama = self.request.get('nameTxt')

Dan dimasukan kedalam variabel 'the_value' dengan tipe data dictionary kemudian di masukan ke dalam template dengan menggunakan modul templating Django :

the_value = {'the_name' : nama}
path = os.path.join(os.path.dirname(__file__), 'post_result.html')
self.response.out.write(template.render(path, the_value))


Request GET dan URL QUERY

Yang perlu diperhatikan, penentuan URL pada pemrograman aplikasi web pada pemrograman Python semuanya di-mapping saat pendeklarasian objek kelas WSGIApplication di fungsi 'main' dan dalam file 'app.yml' dan jangan lupa bahwa untuk mapping URL ini juga membutuhkan pengetahuan regular expression Python.

Dicontoh ini akan menggunakan query yang sederhana seperti berikut :

http://localhost:8080/get/BERHASIL

Dimana 'BERHASIL' adalah data string yang akan kita gunakan dalam pemrosesan, untuk mendapatkan hasil query dari URL tersebut kita mengatur mapping pada app.yaml, seperti berikut :

- url: /get/(.*)
  script: main.py


Sedangkan pada objek kelas WSGIApplication kita set seperti berikut (lihat yang di huruf tebal) :

def main():

    application = webapp.WSGIApplication([('/', MainHandler),

                                          ('/post', FormHandler),

                                          (r'/get/(.*)', GetResultHandler),

                                          ('/post_result', PostResultHandler)],

                                         debug=True)


Karena disini hanya mengulas pananganan request 'GET' maka kita hanya membutuhkan satu template untuk melihat hasil pemrosesan query yang kita buat di atas, berikut contohnya :

<html>

<head>

<title>Untitled Document</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>
<body>

<h3>Contoh request 'GET'</h3>

  Akses Query Anda : {{ query_result }}<br>
<p><a href="../"><b>Kembali</b></a></p>

</body>
</html>


String 'query_result' yang diapit tag '{}' adalah variabel yang akan menampung hasil pemrosesan query yang kita lakukan dengan modul Django template, dalam contoh ini kita hanya ingin menampilkan data string query yang kita berikan, yaitu 'BERHASIL'.

Berikut kelas yang akan digunakan untuk memproses query string yang kita berikan :

class GetResultHandler(webapp.RequestHandler):

    def get(self,q):

        the_value = {'query_result' : q}

        path = os.path.join(os.path.dirname(__file__), 'get_result.html')

        self.response.out.write(template.render(path, the_value))


Di sini, data query string yang kita berikan akan di proses dalam kelas ini dengan memasukan variabel 'q' sebagai argumen dalam fungsi get() untuk menampung query string yang kita berikan dan akan di proses serta dimasukan ke dalam template.

Versi PDF dari tulisan ini bisa Anda dapatkan di sini dan contoh program lengkapnya bisa diunduh disini.(Fargobee's Blog)

Komentar : 0    Tulis Komentar

Artikel Terkait

Akses Database Dengan Python di AppEngine
Request 'POST' dan 'GET' Di Pemrograman Python
Membuat Halaman Web Berbasis Python di AppEngine
Instalasi Google AppEngine Launcher
Aplikasi Web Dengan Python di Google AppEngine

Terpopuler

Syiah dan Kesalahpahaman,Tanggapan Artikel : Sekali Lagi, Syiah dan Kerukunan Umat

 
 
Ads

Space For Banner... contact 087878363482

 
   
    Bacalah-Web © 2007 - 2013 | About | RSS | Total Klik : 325091