<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Dubluve.net &#187; Python</title>
	<atom:link href="http://dubluve.net/category/software/python-software/feed/" rel="self" type="application/rss+xml" />
	<link>http://dubluve.net</link>
	<description>Biz de yazılımcıyız</description>
	<lastBuildDate>Sat, 19 May 2012 18:29:37 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Aptana Studio 3 &#8211; Could not initialize class com.kenai.jaffl.* Hatasi</title>
		<link>http://dubluve.net/2012/02/10/aptana-studio-3-could-not-initialize-class-com-kenai-jaffl-hatasi/</link>
		<comments>http://dubluve.net/2012/02/10/aptana-studio-3-could-not-initialize-class-com-kenai-jaffl-hatasi/#comments</comments>
		<pubDate>Thu, 09 Feb 2012 22:31:40 +0000</pubDate>
		<dc:creator>Boğaç Aslanyürek</dc:creator>
				<category><![CDATA[Php]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Uygulama]]></category>

		<guid isPermaLink="false">http://dubluve.net/?p=857</guid>
		<description><![CDATA[Aptana Studio 3 yüklediyseniz ve açılışta Console ekranında başlıktakine benzer hatalar alıyorsanız, sorun bilgisayarınızın işletim sisteminin yerel ayarlarının Türkçe olmasından kaynaklanıyor. http://jira.codehaus.org/browse/JRUBY-5896 Yerel ayarlarınızı İngilizce olarak değiştirdiğinizde Aptana Studio&#8217;nun problemsiz çalıştığını göreceksiniz. Ayarlarınızı Windows 7 &#8216;de değiştirmek için: Denetim Masası\Saat, Dil ve Bölge ekranına girin. Bölge ve Dil ekranını açın Biçimler sekmesinde İngilizce (Amerikan) seçin. [...]]]></description>
			<content:encoded><![CDATA[<p>Aptana Studio 3 yüklediyseniz ve açılışta Console ekranında başlıktakine benzer hatalar alıyorsanız, sorun bilgisayarınızın işletim sisteminin yerel ayarlarının Türkçe olmasından kaynaklanıyor.</p>
<p><a href="http://jira.codehaus.org/browse/JRUBY-5896">http://jira.codehaus.org/browse/JRUBY-5896</a></p>
<p>Yerel ayarlarınızı İngilizce olarak değiştirdiğinizde Aptana Studio&#8217;nun problemsiz çalıştığını göreceksiniz. Ayarlarınızı Windows 7 &#8216;de değiştirmek için:</p>
<ul>
<li>Denetim Masası\Saat, Dil ve Bölge ekranına girin.</li>
<li>Bölge ve Dil ekranını açın</li>
<li>Biçimler sekmesinde İngilizce (Amerikan) seçin.</li>
<li>Aptana Studio eğer açıksa kapatıp tekrar açın.</li>
<li>Eğer bu şeklide de sorun yaşıyorsanız, yine Denetim Masası\Saat, Dil ve Bölge  ekranında Yönetimsel sekmesine gelin.</li>
<li>&#8220;Sistem yerel ayarlarını değiştir&#8221; seçeneğine tıklayarak geçerli sistem ayarının İngilizce (Amerikan) seçin.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://dubluve.net/2012/02/10/aptana-studio-3-could-not-initialize-class-com-kenai-jaffl-hatasi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>python try except need more than 1 value&#8230;</title>
		<link>http://dubluve.net/2011/12/08/python-try-except-need-more-than-1-value/</link>
		<comments>http://dubluve.net/2011/12/08/python-try-except-need-more-than-1-value/#comments</comments>
		<pubDate>Thu, 08 Dec 2011 15:41:28 +0000</pubDate>
		<dc:creator>Emre Macit</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[python valueerror need more than 1 value to unpack]]></category>

		<guid isPermaLink="false">http://dubluve.net/?p=530</guid>
		<description><![CDATA[python valueerror need more than 1 value to unpack hatası alıyorsanız, kodunuzda da try except var ise, try : do_something except IOError, (errno, strerror) : print strerror gibi bir ifade var ise, burada except kısmında IOError den itibaren silip kodu şu şekilde düzenleyin: try : do_something except : print "burada bir hata oluştu" En azından [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">python valueerror need more than 1 value to unpack hatası alıyorsanız, kodunuzda da try except var ise,</p>
<pre name="code" class="python">try :
    do_something
except IOError, (errno, strerror) :
    print strerror</pre>
<p style="text-align: justify;">gibi bir ifade var ise, burada except kısmında IOError den itibaren silip kodu şu şekilde düzenleyin:</p>
<pre name="code" class="python">try :
    do_something
except :
    print "burada bir hata oluştu"</pre>
<p style="text-align: justify;">En azından kodunuzda hata almadan (hataları manual olarak loglatabilirsiniz) kodunuz çalışmış olur.</p>
]]></content:encoded>
			<wfw:commentRss>http://dubluve.net/2011/12/08/python-try-except-need-more-than-1-value/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux usr/bin altından program çalıştırmak (python kısayol örnek)</title>
		<link>http://dubluve.net/2011/12/08/linux-usrbin-altindan-program-calistirmak-python-kisayol-ornek-2/</link>
		<comments>http://dubluve.net/2011/12/08/linux-usrbin-altindan-program-calistirmak-python-kisayol-ornek-2/#comments</comments>
		<pubDate>Thu, 08 Dec 2011 15:09:51 +0000</pubDate>
		<dc:creator>Emre Macit</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[linux kısayol]]></category>
		<category><![CDATA[linux komut]]></category>
		<category><![CDATA[python kısayol]]></category>
		<category><![CDATA[usr bin]]></category>
		<category><![CDATA[usr bin kısayol]]></category>

		<guid isPermaLink="false">http://dubluve.net/?p=526</guid>
		<description><![CDATA[Linuxta kendi komutlarınız oluşturmak aslında çok kolay. Genel olarak linuxta bir komut yazıldığında /usr/bin/ altındaki şeyler aranır. Biz de şimdi bu yoldan giderek işlemimizi yapalım. 1- python komutu yazmadan bir python dosyası çalıştırmak için ilk önce python dosyamızı herhangi bir yere koyalım. Ben aşağıdaki örnek için /usr/local/lib/python2.4/emre/deneme.py yoluna oluşturdum. 2- daha sonra bir tane de [...]]]></description>
			<content:encoded><![CDATA[<p>Linuxta kendi komutlarınız oluşturmak aslında çok kolay. Genel olarak linuxta bir komut yazıldığında /usr/bin/ altındaki şeyler aranır. Biz de şimdi bu yoldan giderek işlemimizi yapalım.</p>
<h4>1-</h4>
<p>python komutu yazmadan bir python dosyası çalıştırmak için</p>
<p>ilk önce python dosyamızı herhangi bir yere koyalım. Ben aşağıdaki örnek için /usr/local/lib/python2.4/emre/deneme.py yoluna oluşturdum.</p>
<h4>2-</h4>
<p>daha sonra bir tane de bu dosyayı çağıran dosya yazın aynı yere. İçinde ;</p>
<pre class="python">#!/bin/bash
python /usr/local/lib/python2.4/emre/deneme</pre>
<p>olsun.</p>
<h4>3-</h4>
<p>En son da</p>
<pre class="python">cd /usr/bin
ln -s /usr/local/lib/python2.4/emre/deneme deneme</pre>
<p>yazıp enter a basın.<br />
daha sonra</p>
<pre class="python">chmod 700 deneme</pre>
<p>diyin. (root için çalıştırma okuma ve yazma yetkisi vemriş oldunuz.)</p>
<p>Sonra herhangi bir yerde deneme yazıp enter&#8217;a bastığınızda, python dosyanızın çalıştığını göreceksiniz.</p>
<h4>ALternatif olarak</h4>
<p>Diğer yol olarak da python dosyanızın başına<br />
aşağıdaki satırları ekleyin.</p>
<pre class="python">#!/usr/bin/env python
# -*- coding: utf-8-*-</pre>
<p>ilk metoddaki 1. adımı uygulayın ve daha sonra 3. adımda ln -s ile doğrudan python dosyanıza kısayol oluşturun. (2. adımı yapmamış oldunuz.)</p>
]]></content:encoded>
			<wfw:commentRss>http://dubluve.net/2011/12/08/linux-usrbin-altindan-program-calistirmak-python-kisayol-ornek-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Python Görüntü İşleme ve Düzgün Resim Küçültme Örneği</title>
		<link>http://dubluve.net/2011/12/06/python-goruntu-isleme-ve-duzgun-resim-kucultme-ornegi-2/</link>
		<comments>http://dubluve.net/2011/12/06/python-goruntu-isleme-ve-duzgun-resim-kucultme-ornegi-2/#comments</comments>
		<pubDate>Tue, 06 Dec 2011 11:41:48 +0000</pubDate>
		<dc:creator>Ahmet Orsorlu</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[python PIL]]></category>
		<category><![CDATA[python Resim]]></category>
		<category><![CDATA[python resim küçültme]]></category>
		<category><![CDATA[python resim ölçeklendirme]]></category>
		<category><![CDATA[python resize Image]]></category>

		<guid isPermaLink="false">http://dubluve.net/?p=507</guid>
		<description><![CDATA[from PIL import Image No module named PIL diye bir hata veriyorsa aşağıdaki şekilde python image kütüphanesini yükleyiniz. Kütüphaneyi yükleme ile değil de, doğrudan dosyaları kopyalarak sisteminize attıysanız alabilirsiniz. Kütüphanenin olduğu (PIL) dizinde çalışırsanız da hata almayaacksınız, çünkü python default olarak pythonu çalıştırdığınız dizini sys.patch e ekliyor. bu yüzden yine de aşağıdaki gibi yüklemenizde yarar [...]]]></description>
			<content:encoded><![CDATA[<pre name="code" class="python">from PIL import Image</pre>
<p style="text-align: justify;">No module named PIL diye bir hata veriyorsa aşağıdaki şekilde python image kütüphanesini yükleyiniz. Kütüphaneyi yükleme ile değil de, doğrudan dosyaları kopyalarak sisteminize attıysanız alabilirsiniz. Kütüphanenin olduğu (PIL) dizinde çalışırsanız da hata almayaacksınız, çünkü python default olarak pythonu çalıştırdığınız dizini sys.patch e ekliyor. bu yüzden yine de aşağıdaki gibi yüklemenizde yarar var.</p>
<p style="text-align: justify;">Yüklemek için;</p>
<pre name="code" class="python">sudo apt-get install python-imaging</pre>
<p style="text-align: justify;">apt-get yoksa;</p>
<pre name="code" class="python">yum install python-imaging</pre>
<p style="text-align: justify;">ile yükleyebilirsiniz.</p>
<p style="text-align: justify;">Bir resim dosyası açın. tam yol girmeniz her zaman daha sağlıklı olur (.bmp,.jpg,.png,.gif)</p>
<pre name="code" class="python">imageFile = "/root/emre/snake.jpg"
imageObj = Image.open(imageFile)</pre>
<p style="text-align: justify;"> Örnek bir resmi şu adresten indirebilirsiniz : <a href="http://static.tumblr.com/pvhyhgn/3uUkyp9ky/snake.jpg" target="_blank">snake.jpg </a></p>
<p style="text-align: justify;">Resmin boyutlarını almak için .size diyoruz. bu bize 2 li bir dizi (array) döndürüyor.</p>
<pre name="code" class="python">data = imageObj.size
print "width(en) %s , height(boy) %s" %(data[0], data[1])</pre>
<p style="text-align: justify;">Bunları ileride kullanacaksak ayrı değişkene verebiliriz</p>
<pre name="code" class="python">imageWidth=data[0]
imageHeight=data[1]</pre>
<p style="text-align: justify;">Yeni en ve boy degerlerinin disaridan girilmesini isteyelim.</p>
<pre name="code" class="python">width = float(raw_input("En giriniz"))
height = float(raw_input("Boy giriniz"))</pre>
<p style="text-align: justify;">Aşağıda 4 farklı yeniden boyutlandırma algoritması var, 4 ü de resmi verilen boyutlarla yeniden boyutlandırıyor. Deneyip görebilirsiniz (algoritmaların türkçeleri biraz saçma oldu <img src='http://dubluve.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  )</p>
<pre name="code" class="python">im2 = imageObj.resize((int(width), int(height)), Image.NEAREST) # en yakın komşuluk metodu.
im3 = imageObj.resize((int(width), int(height)), Image.BILINEAR) # 2x2 lik ortamda lineer interpolasyon metodu
im4 = imageObj.resize((int(width), int(height)), Image.BICUBIC) # 4x4 ortamda Kübik interpolasyon metodu
im5 = imageObj.resize((int(width), int(height)), Image.ANTIALIAS) # aşağı ölçeklendirme filtreleme metodu (antialias)</pre>
<p style="text-align: justify;">Bu yeniden boyutlandırılmış resimleri çalıştığımız dizine kayıt edebiliriz.</p>
<pre name="code" class="python">im2.save("NEAREST.jpg")
im3.save("BILINEAR.jpg")
im4.save("BICUBIC.jpg")
im5.save("ANTIALIAS.jpg")</pre>
<p style="text-align: justify;">Resmin ilk hali üzerinden doğru ölçeklendirmek için bir resim algoritması aşağıdadır. Bu resmi eğip büzmez mevcut oranları korur, eski resmi girilen en boy oranları şeklindeki bir hayali diktörgenin içine sığdırır. Çarpma bölme ve oran işlemleri için float değerlere ihtiyacımız olduğundan integer olabeilcek verileri float() tan geçirmeyi unutmuyoruz.</p>
<pre name="code" class="python">if imageWidth&gt;width or imageHeight &gt; height :
	if imageWidth &gt; imageHeight :
		finalWidth = width
		percent = float(width)/float(imageWidth)
		finalHeight = float(percent) * float(imageHeight)
	elif imageHeight &gt;= imageWidth :
		finalHeight = height
		percent = float(height)/float(imageHeight)
		finalWidth = float(percent) * float(imageWidth)
elif imageWidth &lt; = width and imageHeight &lt; = height :
	finalWidth = imageWidth
	finalHeight = imageHeight</pre>
<p style="text-align: justify;">Resim objesi resize işleminde integer değer aldığından oluştururken float olan verileri int() ten geçiriyoruz ve resmi kaydediyoruz.</p>
<pre name="code" class="python">print "yeni boyutlar %s %s" % (finalWidth,finalHeight)
newImage = imageObj.resize((int(finalWidth),int(finalHeight)), Image.NEAREST)
newImage.save("newImage.jpg")</pre>
]]></content:encoded>
			<wfw:commentRss>http://dubluve.net/2011/12/06/python-goruntu-isleme-ve-duzgun-resim-kucultme-ornegi-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Python dikkat edilmesi gerekenler</title>
		<link>http://dubluve.net/2011/12/03/python-dikkat-edilmesi-gerekenler/</link>
		<comments>http://dubluve.net/2011/12/03/python-dikkat-edilmesi-gerekenler/#comments</comments>
		<pubDate>Sat, 03 Dec 2011 18:28:32 +0000</pubDate>
		<dc:creator>Emre Macit</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[python 2.4]]></category>
		<category><![CDATA[python 2.7]]></category>
		<category><![CDATA[python 3.0]]></category>
		<category><![CDATA[python dikkat edilmesi gerekenler]]></category>
		<category><![CDATA[python tavsiyeler]]></category>

		<guid isPermaLink="false">http://dubluve.net/?p=467</guid>
		<description><![CDATA[Python güzel ve kullanımı kolay post modern diyebileceğim bir dil. Fakat şu konularda kodunuzu yazarken 5-10 kere daha düşünerek yazın diyor ve maddelemeye başlıyorum. Ne Açıyorsanız Onu Kapayın! Programın içinde kullanacağınız bir dosya içeriği var diyelim. Ne yaparız normalde, açarız dosyayı okuruz. Bu noktada kapatmaya özel dikkat. Tutarsız bir şekilde ne olduğunu anlamadan başınıza bişeyler gelebilir, [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Python güzel ve kullanımı kolay post modern diyebileceğim bir dil. Fakat şu konularda kodunuzu yazarken 5-10 kere daha düşünerek yazın diyor ve maddelemeye başlıyorum.</p>
<h3 style="text-align: justify;">Ne Açıyorsanız Onu Kapayın!</h3>
<p style="text-align: justify;">Programın içinde kullanacağınız bir dosya içeriği var diyelim. Ne yaparız normalde, açarız dosyayı okuruz. Bu noktada kapatmaya özel dikkat. Tutarsız bir şekilde ne olduğunu anlamadan başınıza bişeyler gelebilir, başka bir değişken için ya aynı dosyayı okuyamazsınız, ya aynı değişkene başka bişiler yapamazsınız vb..</p>
<pre name="code" class="python">fileHandler = open("/usr/deneme.log", "r")
content = sqlFileHandler.read()
fileHandler.close()</pre>
<h3><span class="Apple-style-span" style="font-size: 15px;">MysqlDb ile ilgili</span></h3>
<pre name="code" class="python">import MySQLdb as sql</pre>
<p>diye import ettiğimiz python mysql kütüphanesinde,</p>
<pre name="code" class="python">db = sql.connect(.....</pre>
<p>dedikten sonra,</p>
<pre name="code" class="python">c = db.cursor();</pre>
<p>diyoruz. Burada istediğimz bir query yi</p>
<pre name="code" class="python">c.execute('select * from biseybisey where a=3')</pre>
<p>diye yazabilirken, DELETE ile ilgili bir query yazdığımızda</p>
<pre name="code" class="python">c.commit();</pre>
<p style="text-align: justify;">yazmazsanız, o delete querysi çalışmıyor. Eğer ki bir dosya içindeki bazı queryleri sırayla çalıştırıyorsanız, bu noktada en sondaki queryniz DELETE ise çalışamyacağını berlitmek isterim (Python 2.4) Ama delete den sonra başka bir query var ise, o query sayesinde sanırım kendiliğinden commit ediyor.</p>
<p>C ile işiniz bittikten sonra</p>
<pre name="code" class="python">db.close();</pre>
<p>demeyi de unutmayın. Açık kalmasın, saçmalar yine bişeyler olur. belli mi olur. (biraz gerginim, dün bayağı bi canımız yandı da.)</p>
<h3>Try Except (Yani Try Catch) Kullanın!</h3>
<p>Pythonda herşeyi try catch bloklarına koyarsanız mantıklı olur.<br />
Kullanımı şöyle :</p>
<pre name="code" class="python">try:
	f = open("/usr/deneme/dosya.log", "a")
	f.write("yazilacak icerik burada\n")
	f.close()
except OSError, strerror:
	print "LOG HATA: " + strerror</pre>
<h3>Son Olarak Birkaç Tavsiye.</h3>
<p style="text-align: justify;">Python güzel bir dil fakat 2.5 ü , 2.7 si 3 ü, hepsi ayrı telden çalıyor. Bu da kişinin hem kafasını karıştırıyor, hem de yaptığı bir şeyden emin olamamasına sebep oluyor. Canınızı sıkabiliyor bu da. Yapmış olduğunuz programı özellikle python için diyorum, mutlaka object oriented yapın. Herkesin yaptığı iş belil olsun ve net o işi yapsın. Kodları çok refactor etmeyin, testlerden sonra çalışan kod doğruca çalışsın. (Fakat yine de bu neden çalışmıyor sorusuna, e bu çalışıyordu ne oldu??? diye soruyla karşılık verebilirsiniz. Biz yaşadık.)</p>
]]></content:encoded>
			<wfw:commentRss>http://dubluve.net/2011/12/03/python-dikkat-edilmesi-gerekenler/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TORNADO 101</title>
		<link>http://dubluve.net/2011/11/01/tornado-101/</link>
		<comments>http://dubluve.net/2011/11/01/tornado-101/#comments</comments>
		<pubDate>Tue, 01 Nov 2011 16:32:16 +0000</pubDate>
		<dc:creator>sedat</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Tornado Framework]]></category>
		<category><![CDATA[friendfeed]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[tornado]]></category>

		<guid isPermaLink="false">http://dubluve.net/?p=266</guid>
		<description><![CDATA[Tornado friendfeed geliştiricilerinin python üzerinde geliştirmiş oldukları bir framework. Friendfeed&#8217;te bir canlı veri akışı vardır, bir kelime aradığınızı düşünelim, o kelime ile ilgili sonuçların sayfasına yönlendiğinizde o kelime ile ilgili yeni bir feed gelirse hemen sonuç sayfasında yerini alır, canlı bilgiyi görmeniz için sayfayı yenilemenize gerek kalmaz. Web tabanlı bu tür teknolojileri araştırmak için “long [...]]]></description>
			<content:encoded><![CDATA[<p><a title="tornado" href="http://www.tornadoweb.org/" target="_blank">Tornado</a> <a title="friendfeed" href="http://friendfeed.com" target="_blank">friendfeed</a> geliştiricilerinin python üzerinde geliştirmiş oldukları bir framework. Friendfeed&#8217;te bir canlı veri akışı vardır, bir kelime aradığınızı düşünelim, o kelime ile ilgili sonuçların sayfasına yönlendiğinizde o kelime ile ilgili yeni bir feed gelirse hemen sonuç sayfasında yerini alır, canlı bilgiyi görmeniz için sayfayı yenilemenize gerek kalmaz. Web tabanlı bu tür teknolojileri araştırmak için “<a title="long polling" href="http://www.google.com/search?client=ubuntu&amp;channel=fs&amp;q=long+polling&amp;ie=utf-8&amp;oe=utf-8" target="_blank">long polling</a>” ve “<a title="commet programming" href="http://www.google.com.tr/#sclient=psy-ab&amp;hl=tr&amp;site=&amp;source=hp&amp;q=commet+programming&amp;pbx=1&amp;oq=commet+programming&amp;aq=f&amp;aqi=g-sL1&amp;aql=1&amp;gs_sm=e&amp;gs_upl=45l5656l0l5822l25l19l0l0l0l4l884l7914l2-2.4.1.4.4l15l0&amp;bav=on.2,or.r_gc.r_pw.,cf.osb&amp;fp=4cb28893f4fd3aba&amp;biw=1366&amp;bih=643" target="_blank">comet programming</a>” kelimeleri üzerinde araştırma yapmanız yeterlidir.</p>
<p>Tornado sadece bir chat uygulamasına yarayan framework değildir. Aynı zamanda basit ama etkili bir veritabanı sınıfına, template mekanizmasına ve mvc destekleyici bir yapıya sahiptir. Tornado&#8217;daki en temel sınıf RequestHandler sınıfı ve bu sınıftan uygulama içinde türetilecek sınıflardır. Bu sınıf yardımıyla get, post, file ve cookie işlemleri yapılır, aynı zamanda bu sınıftaki render metodu ile templateler yorumlanır.</p>
<p>Basit bir tornado uygulaması yaratmak için temel olarak 3 şeyi yapmak gerekecektir:<br />
En az 1 adet RequestHandler sınıfından türeyen ve requeste karşılık response üretebilecek bir sınıf oluşturmak,<br />
Hangi url isteklerine hangi RequestHandler sınıfının karşılık geleceğini belirlemek<br />
Ana python kodununun main kısmını, yani uygulamanın bellekten çalışmaya başladığı kısmı oluşturmak.</p>
<p>Dilerseniz bu 3 maddenin de basitçe yer aldığı bir örnek oluşturalım:</p>
<p><a href="http://softirik.files.wordpress.com/2011/10/tornado.png"><img class="alignnone size-full wp-image-46" title="tornado" src="http://softirik.files.wordpress.com/2011/10/tornado.png" alt="" width="430" height="241" /></a></p>
<p>İlgili kodu çalıştırıp “<a href="http://localhost:4444/">http://localhost:4444</a>” adresine bağlandığınızda “Naber” yazısını göreceksiniz.</p>
]]></content:encoded>
			<wfw:commentRss>http://dubluve.net/2011/11/01/tornado-101/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
<!-- This Quick Cache file was built for (  dubluve.net/category/software/python-software/feed/ ) in 0.68124 seconds, on May 20th, 2012 at 2:46 am UTC. -->
<!-- This Quick Cache file will automatically expire ( and be re-built automatically ) on May 20th, 2012 at 3:46 am UTC -->
