sekilas python dan cgi

Untuk membuat web applikasi, kita dapat menggunakan bahasa pemrograman apa saja, kita dapat menggunakan bahasa perl, php, java, atau python. Yang akan kita bicarakan kali ini adalah membuat web applikasi dengan menggunakan python.

Untuk membuat web applikasi dengan menggunakan python ada beberapa jalur/pilihan yand diambil:

  • cgi
  • mod-python (bila menggunakan apache)
  • wsgi
  • python application server

pada posting kali ini, yang akan dibahas lebih lanjut adalah cgi, karena cgi adalah metode yang paling tua dan paling sederhana ( meskipun bisa dikatakan pling merepotkan).

CGI ::
cgi merupakan singkatan dari common gateway interface. cgi merupakan protokol untuk menghubungkan antara server dan client. Kita bisa menggunakan bahasa apapun selama bahasa pemrograman itu sudah terdapat di server.

contoh sebuah script cgi dengan menggunakan python


#!/usr/bin/python

print "Content-Type:plain/text\r\n"
print "Hello World"


disave di folder cgi-bin anda (bila menggunakan ubuntu+apache terdapat di folder /usr/lib/cgi-bin/). dan beri mode eksekusi.
mari kita bahas baris perbaris.

baris 1: merupakan perintah shebang pada linux, yang menyatakan program yang digunakan untuk mengeksekusi script.
baris 3: perintah menulis header
baris 4: perintah untuk menulis content.

Form

Untuk menghandle form, yang kita butuhkan hanya class FieldStorage
dari module cgi.

form = cgi.FieldStorage()

misal ada sebuah halaman form:

Name:


maka untuk process script adalah sebagai berikut

import cgi
form = cgi.FieldStorage() # instantiate only once!
nama = form.getfirst('nama', 'empty')

# Avoid script injection escaping the user input
nama = cgi.escape(nama)

print """\
Content-Type: text/html\n

Nama anda adalah "%s"

""" % nama

method getFirst akan mengembalikan nilai pertama dari forms,
bila terdapat lebih dari satu form, maka nilai pengembalian adalah
nilai pertama. Dan sebalikanya bila tidak terdapat form dengan nama
yang dicari, maka nilai dari kembalian adalah None

Bila dalam satu forms, terdapat form dengan nama yang sama (misalnya
check box) maka kita dapat mengetahui nilainya dengan menggunakan
method getList

Cookie

Cookie berperan sangat penting dalam pengembangan aplikasi web, karena
cookie dapat membantu dalam menyimpan State dari web
aplikasi.
Untuk pengolahan cookie, dapat secara manual, dalam arti membaca
header dari HTTP, atau juga kita dapat menggunakan module Cookie, yang
merupakan wrapper dari pembacaan cookie secara manual.
Paling tidak ada 2 hal yang harus dimengerti ketika akan
menggunakan cookie di python-cgi.

Menyimpan/Mengirim Cookie

Mari kita lihat langsung contoh script untuk menyimpan cookie, secara manual..

#!/usr/bin/python

import time

print "Set-Cookie:last-visit="+str(time.time())
print "Content-Type:plain/html \r\n"

#print the content
print ""
print "Hello World"
print ""

dan apabila kita menggunakan module Cookie.

#!/usr/bin/python

import time
import Cookie

cookie = Cookie.SimpleCookie()
cookie['last-visit'] = str(time.time())
print cookie
print "Content-Type:plain/html \r\n"

#print the content
print ""
print "Hello World"
print ""

Gampang dan mudah🙂.

Membaca Cookie

Berikut ini adalah contoh untuk membaca cookie dengan Module Cookie.

import Cookie
import cgi

cookie_string = cgi.os.environ.get('HTTP_COOKIE')
if not cookie_string:
print "Belum ada Cookie atau Cookie tidak didukung"
else:
cookie = Cookie.SimpleCookie()
cookie.load(cookie_string)
value = cookie['lastvisit'].value

One Response

  1. haduhhh… terimakasih banyak mas bayu, akhirnya nemu juga caranya. aku dah muter2 kemana-mana, akhirnya solusinya dapet disini.

    sekali lagi terimakasih banyak,,, goodlux
    baris ini sangat membantu:

    disave di folder cgi-bin anda (bila menggunakan ubuntu+apache terdapat di folder /usr/lib/cgi-bin/). dan beri mode eksekusi.

    sebelumnya aku bingung benget, kok file cgi selalu tidak ditemukan terus, padahal sudah diupload dan di chmod +x , heheh… ternyata salah posisi nyimpennya😀 THX

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: