Friday, August 17, 2012

Koneksi MySQL Dengan Python dan CherryPy

Salah satu kelebihan Python adalah dukungannya terhadap database, Python sudah mendukung hampir semua database populer yang banyak digunakan saat ini bahkan Python sudah mendukung ADO dan ODBC.

Beberapa waktu yang lalu saya membaca sebuah pertanyaan pada salah satu thread milis ID-Python yang berkaitan dengan koneksi database dengan Python (terutama menggunakan web framework Django).

Sebenarnya sudah cukup lama saya berniat memposting tulisan yang berkaitan dengan koneksi database MySQL dengan Python. Untuk menghubungkan Python dengan MySQL dibutuhkan modul Python yang bernama MySQLdb (mysql-python) yang dapat diunduh di http://sourceforge.net/projects/mysql-python.

Bagi Anda pengguna Linux Slackware, untuk mempermudah proses installasi dapat menggunakan script SlackBuild yang bisa diunduh di http://slackbuilds.org/repository/13.37/development/MySQL-python/.

Python dan MySQL

Disini saya tidak akan menjelaskan cara penginstallasian modul MySQLdb dan MySQL server (silahkan membaca dokumentasi masing-masing item tersebut). Setelah modul MySQLdb terinstall, mari kita lakukan percobaan dengan menggunakan konsol Python.

Buka konsol Python, bila menggunakan windows silahkan gunakan IDLE (Python GUI) atau bila Anda menggunakan Linux ketik "python" pada konsol Linux hingga tampil konsol Python yang ditandai dengan prompt ">>>"

Wednesday, August 15, 2012

Templating CherryPy Dengan Jinja2

Bila ditulisan sebelumnya membahas tentang setting web server dan installasi CherryPy, sekarang saatnya membahas penggunaan template pada CherryPy dengan menggunakan Jinja2. Saya menggunakan Jinja karena formatnya sangat familiar dengan format template pada Django dan templating system pada Appengine.

Sebenarnya saya juga pernah menulis tentang penggunaan templating system pada CherryPy hanya saja ditulisan tersebut saya melakukan percobaan menggunakan fasilitas Google Appengine dengan contoh menggunakan templating system default milik Appengine.

Dengan keterbukaan framework CherryPy sebenarnya kita bisa menggunakan templating system yang lain selain Jinja, antara lain ZPT, Cheetah, Genshi dan lain-lain coba cek dokumentasi CherryPy yang berkaitan dengan templating pada CherryPy.

Installasi Jinja2

Silahkan unduh Jinja2 di http://pypi.python.org/pypi/Jinja2/. Sebelum Anda melakukan installasi Jinja pastikan di server Anda sudah terinstall setuptools, bila belum silahkan unduh di http://pypi.python.org/pypi/setuptools/. Berhubung saya menggunakan Slackware, untuk mempermudah proses instalasi saya menggunakan script SlackBuild yang bisa diunduh di http://slackbuilds.org/repository/13.37/python/pysetuptools/.

Install Jinja dengan perintah berikut :

# python setup.py install

Untuk mengetahui cara installasi, setting dan penggunaan API Jinja selengkapnya silahkan baca dokumentasinya di http://jinja.pocoo.org/docs/

Sunday, August 12, 2012

Setting mod_wsgi dan CherryPy Dengan Apache

Apa itu mod_wsgi ? menurut para pengembangnya, mod_wsgi adalah sebuah modul sederhana yang diimplemetasikan sebagai modul Apache web server yang berfungsi untuk menangani aplikasi web berbasis Python yang mendukung antarmuka Python WSGI.

Apa itu CherryPy ? CherryPy adalah HTTP framework Python yang berorientasi object, dengan CherryPy kita dapat membuat berbagai aplikasi web berbasis Python bahkan dengan CherryPy kita juga dapat mengembangkan web framework berbasis Python. Salah satu contoh web framework Python populer yang dikembangkan menggunakan CherryPy adalah TurboGears.
  
Installasi  CherryPy

Unduh CherryPy (versi terbaru saat tulisan ini dibuat adalah versi 3.2.2) di http://download.cherrypy.org/cherrypy/3.2.2/, kemudian ekstrak dan masuklah ke folder tempat kita mengekstrak CherryPy tersebut kemudian berikan perintah berikut untuk menginstall CherryPy yang sudah kita unduh. 

# python setup.py install 

Installasi mod_wsgi

Disini saya menggunakan web server Apache berbasis Slackware 13.37. Untuk dapat menggunakan mod_wsgi kita harus terlebih dahulu menginstall modul ini yang source-nya bisa diunduh di http://code.google.com/p/modwsgi/.

Monday, August 6, 2012

Mail Server Postfix, Dovecot dan SSL Berbasis Slackware

Beberapa hari terakhir ini sebenarnya cukup melelahkan juga, dapat project membangun mail server hingga memaksa saya sibuk Googling sana-sini hanya untuk mencari artikel dan forum yang berkaitan dengan mail server berbasis slackware dengan Postfix, Dovecot dengan autentifikasi SSL.

Cukup sulit juga, apalagi bila saya perhatikan sangat sedikit sekali artikel yang membahas mail server Slackware yang saya temui karena sebagian besar artikel dan forum yang ada kebanyakan membahas masalah mail server berbasis Debian, Ubuntu dan Redhat.

Terlebih lagi, berdasarkan beberapa artikel yang saya baca Slackware tidak mendukung PAM. Jadi untuk menggunakan SSL pada mail server yang akan kita buat harus menginstall Cyrus terlebih dahulu.

Akhirnya setelah oprek sana-sini dengan arahan artikel dan dokumentasi berikut :

https://www.zulius.com/how-to/set-up-postfix-with-a-remote-smtp-relay-host/
http://www.postfix.org/SASL_README.html
http://wiki.dovecot.org/HowTo/PostfixAndDovecotSASL
http://wiki1.dovecot.org/HowTo/DovecotLDAPostfixAdminMySQL
http://library.linode.com/email/postfix/dovecot-mysql-debian-6-squeeze 

Dan beruntung, saat ini Dovecot sudah mendukung SSL hingga saya tidak perlu lagi menggunakan Cyrus untuk dapat membuat mail server Slackware dengan SSL.