Blog ini menggunakan mako sebagai template engine nya. Sebenarnya ada banyak template engine python yang lain. Tetapi belum pernah mencoba selain templetor, template engine bawaan web.py.
Menggunakan mako di web.py cukup mudah. Web.py sudah menyediakan sebuah fungsi untuk memudahkan kita. Pertama download dahulu mako, kemudian ekstrak dan copykan folder mako ke dalam folder kerja kita. Jadi stukturnya kira-kira seperti ini :
- blog
- web
- mako
- templates
- app.yaml
- script.py
Folder templates nantinya akan digunakan untuk meletakan file-file template yang digunakan.
Setelah itu, edit script.py menjadi seperti berikut:
import web
from web.contrib.template import render_mako
urls = ('/','Index')
render = render_mako(
directories = ['templates'],
input_encoding = 'utf-8',
output_encoding = 'utf-8')
app = web.application(urls,globals())
class Index:
def GET(self):
teks = "selamat datang di web.py - gae"
return render.index(teks = teks)
if __name__ == '__main__':
app.cgirun()
<html>
<head><title>Tes Mako</title></head>
<body>
${teks}
</body>
</html>
Jika dijalankan maka akan menampilkan tulisan "selamat datang di web.py - gae" di browser.
Dengan
render = render_mako( directories = ['templates'], input_encoding = 'utf-8', output_encoding = 'utf-8')kita memberi tahu mako untuk mencari file template di direktori templates, dan meng set input dan output encoding ke utf-8. Kemudian pada :
return render.index(teks = teks)script me render, atau mungkin bisa juga disebut mengeksekusi file index.html didalam folder templates dan melewatkan variabel teks. Kemudian variabel teks tadi ditampilkan di dalam template dengan :
${teks}
Tentu saja kemampuan mako tidak hanya seperti itu, ini hanyalah awal perkenalan dengan mako.
Dapet kasus di php. Kasusnya kira-kira seperti ini : ingin mencari data didalam array yang berada di dalam array. Mungkin tepatnya mencari data didalam sub array.
Setelah searching2 di google dan melakukan beberapa tes kecil ternyata cukup simple juga. Contoh array nya kira2 seperti ini :
$data = array('1' => array('1','2'), '3' => array('3','4','8','9','10'));
for($i = 1;$i <= 10; $i++)
{
if(in_array($i, $data[3]))
{
echo '<p>'.$i.'ada</p>';
}
else
{
echo '<p>'.$i.'tidak ada</p>';
}
}
Sebagai awalan disini akan dicoba membuat catatan tentang pengerjaan blog ini. Mungkin bukan step by step pembuatannya tetapi lebih ke tips dan trik yang digunakan dalam membuat sesuatu. Sebenarnya simple sih tapi siapa tahu bisa berguna di kemudian hari. Berhubung blog ini dibuat dengan python maka kemungkinan besar catatannya ya sebagian besar tentang python yang lain mungkin untuk selingan saja.
Oke dimulai dari yang pertama. Blog ini dibuat dengan web.py dan di host di google appengine. Awalnya karena ingin mencoba google appengine, mosok ada layanan gratis yang wah kok tidak dicoba :D. Sayangnya gae tidak atau mungkin belum mendukung bahasa yang biasa saya gunakan yaitu PHP, jadi mau tidak mau harus menggunakan java atau python. Setelah melalui pemikiran yang mendalam #halah dan dalam tempo yang sesingkat-singkatnya akhirnya dipilih python saja. Kenapa web.py? entahlah, mungkin hanya insting saja :D sebenarnya gae juga sudah memiliki dukungan terhadap django, tapi bagi saya django terlalu ribet. Saya hanya ingin belajar python itu saja. Dan akhirnya pilihan jatuh ke web.py ini.
Oke langsung saja ke intinya. Pertama untuk mencoba gae di komputer local download SDK nya dari gae SDK kemudian download web.py dari sini. Setelah gae SDk diinstall, buat sebuah folder, letaknya dimana terserah anda :D. Misalnya kita beri nama tes. Kemudian copykan folder web dari web.py ke folder tes selanjutnya buat file app.yaml didalam direktori tes tadi.
application: tes version: 1 runtime: python api_version: 1 handlers: - url: /.* script: script.pyingat nama folder harus sama dengan application di app.yaml.
Setelah itu buat file python yang akan berisi script web kita dan beri nama script.py didalam folder tes tadi. Isi dari script.py seperti berikut.
import web
urls = ('/','Index')
app = web.application(urls,globals())
class Index:
def GET(self):
print "selamat datang di web.py - gae"
if __name__ == '__main__':
app.cgirun()
Setelah disimpan, buka command prompt, ups ini dibuat di windows :D kemudian pindah ke dalam direktori tes tadi dan jalankan command dev_appserver.py .. Setelah itu buka web browser dan arahkan ke http://localhost:8080. Kenapa menggunakan :8080? karena secara default gae menggunakan port 8080.
Hanya begitu saja, tidak perlu cara yang macam2. Dan dalam catatan ini belum termasuk menggunakan library2 lain, penggunaan template, membuat syntax highlighting dan banyak lagi yang belum termasuk. Tentu saja script blog ini tidak sesederhana itu, tetapi mungkin kapan2 dilanjut untuk catatan yang lain.
Meski blog ini sangat simple, tetapi ya namanya juga dalam tahap belajar. Insya Allah kedepannya akan dikembangkan lagi agar lebih baik :)
Follow : iorme di twitter
Semua tulisan di dalam blog ini bebas untuk dicopy/disalin sebagian atau seluruhnya dengan atau tanpa menyertakan sumbernya.