Tuesday, February 1, 2011

CherryPy dan App Engine

Bila kita baca dokumentasi App Engine disitu menyatakan bahwa server App Engine sudah mendukung semua framework yang menjalankan aplikasi WSGI : 'Google App Engine supports any framework written in pure Python that speaks CGI (and any WSGI-compliant framework using a CGI adaptor), including Django, CherryPy, Pylons, and web.py. You can bundle a framework of your choosing with your application code by copying its code into your application directory.'

Saya sudah coba Django, memang bisa meskipun harus ditambahkan dengan modul khusus yang bernama 'Google App Engine Helper For Django' tapi saya masih penasaran apakah App Engine memang benar mendukung framework lain seperti dinyatakan dalam dokumentasinya.

Berhubung saya sendiri sangat 'menghindari' penggunaan framework dalam setiap aplikasi web yang saya buat setelah iseng browsing di website Python akhirnya ketemu (lagi) dengan CherryPy, sebuah HTTP framework yang penggunaannya cukup mudah dan sederhana.

Sebenarnya saya sudah tidak terlalu asing dengan CherryPy karena saya dulu sempat sedikit belajar menggunakan Framework ini dan sejujurnya CherryPy adalah Framework Python based pertama yang pernah saya pelajari.

Tapi bingung juga, gimana cara connecting aplikasi CherryPy dengan App Engine karena setelah saya browsing hampir tidak ada dokumentasi mengenai ini dan meskipun ada sangat sedikt dan tidak menjelaskan detail (bahkan di dokumentasi CherryPy dan App Engine juga tidak ada), untuk bertanya di komunitas Python Indonesia saya gak yakin dapat jawabannya karena disini umumnya adalah 'Django User'.
Akhirnya ketemu tutorial ringan yang dilengkapi dengan contoh, karena tutorial ini bertanggal sudah cukup lama (tahun 2008) saya yakin versi CherryPy-nya juga pasti menggunakan versi yang lama hingga ragu juga saya kalo tutorial ini masih bisa digunakan dengan versi yang terbaru.

Penasaran, browsing lagi di website CherryPy akhirnya ketemu artikel ini yang menyatakan : 'CherryPy now works with Google App Engine! The wsgiserver is now imported lazily-enough to avoid illegal imports of the socket module.' Berdasarkan tulisan ini saya asumsikan tidak perlu ada konfigurasi tambahan, cukup memasukan modul/aplikasi CherryPy yang kita download kedalam root folder App Engine termasuk file konfigurasi CherryPy.

Untuk menjalankan aplikasi cukup menambahkan baris kode berikut di kode CherryPy yang kita buat :
run_wsgi_app(cherrypy.tree.mount(HelloWorld(), config=[file config]))
Akhirnya Aplikasi bisa jalan dengan sempurna.......

No comments: