Python Web Programlama ve Karakter Sorunu
Python ile web programlama konusunda biraz adım atayım dedim. Az önce bir rss okuyucu yapmaya çalıştım. Ancak karakter kodlaması ile ilgili sorunlarla karşılaştım.
Bu sorunu aşabilmek için öncelikle sayfanın baş kısmına # -*- coding:cp1254 -*- kodunu yerleştirdim. Ancak sorun düzelmedi. Biraz eski projelerime göz attım. Bir projede karakter sorununu s=s.encoding('iso-8859-9') türünden bir kod parçası ile düzelttiğimi gördüm. Bunu denediğimde başarılı bir şekilde karakter sorunu olmadan kodlar çalıştı.
Aşağıdaki kodları şu sayfada deneyebilirsiniz.
-
# -*- coding:cp1254 -*-
-
#!/usr/bin/python
-
-
import cgi
-
import cgitb
-
import feedparser
-
cgitb.enable()
-
-
print "Content-type: text/html"
-
print
-
-
print "Python Rss Okuyucu"
-
print "<br><br>"
-
-
feeds = feedparser.parse("http://news.google.com/?output=rss")
-
print "<ol>"
-
for i in range(0,len(feeds.entries)):
-
baslik=feeds.entries[i]["title"]
-
baslik=baslik.encode('utf-8')
-
print "<li>%s</li>" %(baslik)
-
print "</ol>"
Tags: python
August 11th, 2007 at 4:55 pm
Bu kodlar içerisindeki cgi ve cgitb modülleri ne işe yarıyor peki? Buna benzer bir uygulamayı (foruma yeni gelen iletiler için) ben de yazmıştım ama sadece Python-Feedparser modülü yeterli olmuştu, ya da ben yeterli olduğunu sanıyordum. Demek ki CGI da kullanmalıymışım sanırım.
August 11th, 2007 at 6:10 pm
cgitb modülünü aktif duruma getirdiğimizde hata çıktılarını daha detaylı bir şekilde alabiliyoruz. Onun haricinde neye yaradığını bende tam olarak bilmiyorum.
Sunucu pythonu cgi ile desteklediği için cgi modülünü kullandım.
Eğer feedparser.py dosyası içinden bu işlemini yaptıysan bu modülde de cgi dosyaya dahil edilmiş. Sanırım sorun çıkmamasının nedeni bu olsa gerek, eğer sunucuda çalıştıysa kodlar.
August 12th, 2007 at 8:08 am
ya kusuruma bakma ama gece geç vakit okuyunca bende anlayış eksikliği olmuş. sanırım sen bu programı sunucuya yükleyip çalıştırıyorsun bu durumda da CGI modülü kullanılması normal. Ben sadece linux konsolunda çalışacak şekilde bir rss tarayıcı yaptığım için CGI kullanmamıştım.