Friday, August 8, 2008

Templating Dengan Python CGI

Kemampuan Python sebagai bahasa pemrograman web tidak kalah dengan bahasa pemrograman web lainnya. Disini kita akan coba membuat program CGI dari Python untuk mencoba membuat sebuah template untuk merancang halaman web.

Untuk memulai, mungkin lebih baik kita coba dulu dengan program yang sederhana untuk menampilkan template yang kita buat, pertama kita buat lebih dahulu template yang akan kita gunakan untuk menampilkan halaman web yang akan kita tampilkan.

template.html :

<
html>
<head>
<title>Python is Fun!</title>
</head>
<body>
<!-- *** CONTENT *** -->
</body>
</html>

Coba perhatikan baris yang mencantumkan komentar <!-- *** CONTENT *** -->, program kita akan mencari komentar ini dengan menggunakan fasilitas pencarian Python yang ada dalam modul RE ( regular expression ) dan akan diganti dengan konten yang sudah kita olah dengan Python.

Selanjutnya kita buat program utama yang akan digunakan untuk mengolah data dan menampilkan halaman web yang kita buat.

test.py :

import cgi
import re # untuk menggunakan modul regular expression

TemplateFile = "template.html"

# Fungsi yang akan digunakan untuk membuat tampilan
def Display(Content):
    TemplateHandle = open(TemplateFile, "r") # buka file dalam mode read only
    #
membaca file sebagai string
    TemplateInput = TemplateHandle.read()
    TemplateHandle.close()
    BadTemplateException = "There was a problem with the HTML template."

    SubResult = re.subn("
<!-- *** CONTENT *** -->",Content, TemplateInput)
    if SubResult[1] == 0:
        raise BadTemplateException

    print "Content-Type: text/html\n\n"
    print SubResult[0]

def DisplayTest():
    ViewString="
<h1>Ini Contoh Tampilan Template</h1>"
    Display(ViewString) #panggil fungsi Display()

DisplayTest() # start program dengan memanggil fungsi DisplayTest


Variabel "BadTemplateException" di atas berisi pesan error yang akan ditampilkan bila string "<!-- *** CONTENT *** -->" tidak ditemukan dalam file template yang dibaca.

Pada baris yang menggunakan subn(), ini adalah salah satu metode dalam modul re yang berfungsi untuk mencari string "<!-- *** CONTENT *** -->" dan menggantinya dengan string hasil olahan program kita yang terdapat di variabel "Content".

Pada baris statement SubResult =re.subn() akan mengembalikan hasil dalam format type data tuple dan menghasilkan data dalam bentuk array dimana SubResult[0] berisi string hasil substitusi dan SubResult[1] berisi jumlah string yang disubstitusi, untuk mengetahui lebih lanjut mengenai type data dan modul RE di Python silahkan baca dokumentasi python Anda.(Bacalah-Web)

No comments: