web etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
web etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

2 Ekim 2008 Perşembe

Cgi-python'a Giriş

Bu yazımızda cgi modülünü ve cgi-python ile web sayfaları yazmayı anlatacağız.
Öncelikle python destekleyen bir yer bulmalısınız veya kendi bilgisayarınızda deneyebilirsiniz.


# -*- coding: utf-8 -*-

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

<html>
<body> bu bir deneme sayfasıdır... </body>
</html>
"""


cgi-python da html kodları print ile yazılır.
Content-Type: text/html\n satırı ile içeriğin türünü belirttik buradaki "\n" karakteri koyduk çünkü bu satırdan sonra 2 tane "\n" olmalı.

şimdi örneğimizi geliştirelim...


# -*- coding: utf-8 -*-

import cgi

form = cgi.FieldStorage()
isim = form.getfirst("isim", "bos")

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

<html>
<body>
<b>Gelen isim: </b> %s
</body>
</html>
""" % str(isim)


burada cgi modülündeki FieldStorage sınıfının getfirst metodu ile "isim" adındaki argumanı aldık bu arguman index.py?isim=deneme şeklinde gelir buradaki "deneme" argumandır.
getfirst e verilen 2. arguman ise hiçbir değer gelmezse isim değişkenine atanır yani değer verilmezse değişkenin değeri "bos" olur.

örneğimizi daha da geliştirecek olursak...


# -*- coding: utf-8 -*-
import cgi

form = cgi.FieldStorage()
isim = form.getfirst("isim", "bos")

print """\
Content-Type: text/html\n
<html>
<body>
"""

if isim != "bos":
print """\n
<b> Gelen isim: </b> %s
""" % isim
else:
print """\
<form action="deneme.py">
isminiz: <input type=text name="isim">
</form>
"""

Hata yakalma:

# -*- coding: utf-8 -*-

import cgi
import cgitb

cgitb.enable()

try:
open("olmayan_doysa", "r")
except:
cgitb.handler()

Hata yakalamak istediğmizde cgitb modülünü cgitb.enable() ile aktif ediyoruz daha sonra ise hata yakalandığında cgitb.handler() i çalıştırıyoruz.