<?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>ftoptas blog &#187; django</title>
	<atom:link href="http://ftoptas.com/category/python/django/feed/" rel="self" type="application/rss+xml" />
	<link>http://ftoptas.com</link>
	<description>[beta]</description>
	<lastBuildDate>Mon, 30 Jan 2012 20:19:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Django Öğrenebileceğiniz 24 Kaynak</title>
		<link>http://ftoptas.com/django-ogrenebileceginiz-24-kaynak/</link>
		<comments>http://ftoptas.com/django-ogrenebileceginiz-24-kaynak/#comments</comments>
		<pubDate>Sun, 03 Oct 2010 19:43:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[django]]></category>
		<category><![CDATA[ders]]></category>
		<category><![CDATA[kaynak]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://ftoptas.com/?p=386</guid>
		<description><![CDATA[Popularitesi hızla yükselen bir programlama]]></description>
			<content:encoded><![CDATA[<p><a href="http://ftoptas.com/wp-content/uploads/2010/10/django.png"><img class="alignright size-medium wp-image-388" title="django" src="http://ftoptas.com/wp-content/uploads/2010/10/django-300x128.png" alt="" width="300" height="128" /></a></p>
<p>Popularitesi hızla yükselen bir programlama dili olan <a href="http://www.python.org/" target="_blank">Python</a> ile yazılmış mükemmel bir web çatısı olan <a href="http://www.djangoproject.com/" target="_blank">Django</a>&#8216;yu öğrenmek işte size 24 kaynak.</p>
<p><span id="more-386"></span></p>
<p><strong>Django dökümantasyonu</strong></p>
<p><a title="django" href="http://docs.djangoproject.com/en/1.2/" target="_blank">http://docs.djangoproject.com/en/1.2/</a></p>
<p><strong>Django kitapı</strong></p>
<p><a title="django" href="http://www.djangobook.com/" target="_blank">http://www.djangobook.com/</a></p>
<p><strong>Türkçe Video Dersler</strong></p>
<p>4 bölümlük djangoturkiye.com video dersleri</p>
<p><a title="django" href="http://showmedo.com/videotutorials/series?name=Y907SyYnq" target="_blank">http://showmedo.com/videotutorials/series?name=Y907SyYnq</a></p>
<p>3 bölümlük django giriş ve views ile alakalı dersler</p>
<p><a href="http://showmedo.com/videotutorials/series?name=qWmtuStb0" target="_blank">http://showmedo.com/videotutorials/series?name=qWmtuStb0</a></p>
<p><strong>İngilizce Video Dersler</strong></p>
<p>13 bölümlük Django from the ground up</p>
<p><a title="django" href="http://showmedo.com/videotutorials/series?name=PPN7NA155" target="_blank">http://showmedo.com/videotutorials/series?name=PPN7NA155</a></p>
<p>10 adet django ipuçu</p>
<p><a title="django" href="http://net.tutsplus.com/tutorials/tools-and-tips/10-insanely-useful-django-tips/" target="_blank">http://net.tutsplus.com/tutorials/tools-and-tips/10-insanely-useful-django-tips/</a></p>
<p>3 bölümlük django ile wiki hazırlama dersi</p>
<p><a title="django" href="http://showmedo.com/videotutorials/series?name=v7kABKL6R" target="_blank">http://showmedo.com/videotutorials/series?name=v7kABKL6R</a></p>
<p>5 bölümlük ders</p>
<p><a title="django" href="http://showmedo.com/videotutorials/series?name=pythonNapleonePyConTechSeries" target="_blank">http://showmedo.com/videotutorials/series?name=pythonNapleonePyConTechSeries</a></p>
<p>7 bölümlük ders</p>
<p><a title="django" href="http://ericholscher.com/blog/categories/screencasts/" target="_blank">http://ericholscher.com/blog/categories/screencasts/</a></p>
<p>Webfaction sunucusuna django kurulumu</p>
<p><a title="django" href="http://www.webfaction.com/demos/django" target="_blank">http://www.webfaction.com/demos/django</a></p>
<p>Django ile image hosting</p>
<p><a title="django" href="http://www.youtube.com/watch?v=g8v4STgAAdA" target="_blank">http://www.youtube.com/watch?v=g8v4STgAAdA</a></p>
<p>7 dakikada django</p>
<p><a title="django" href="http://www.throwingbeans.org/django_screencasts.html" target="_blank">http://www.throwingbeans.org/django_screencasts.html</a></p>
<p><strong>Diğer django dersleri</strong></p>
<p>Google App Engine üzerine django kurulumu</p>
<p><a title="django" href="https://code.google.com/intl/tr-TR/appengine/articles/django.html" target="_blank">https://code.google.com/intl/tr-TR/appengine/articles/django.html</a></p>
<p>6 adet django dersi</p>
<p><a title="django" href="http://www.webmonkey.com/2010/02/get_started_with_django/" target="_blank">http://www.webmonkey.com/2010/02/get_started_with_django/</a></p>
<p>Nettuts django dersleri</p>
<p><a title="django" href="http://net.tutsplus.com/articles/news/diving-into-django/" target="_blank">http://net.tutsplus.com/articles/news/diving-into-django/</a></p>
<p><a title="django" href="http://net.tutsplus.com/tutorials/other/10-django-troublespots-for-beginners/" target="_blank">http://net.tutsplus.com/tutorials/other/10-django-troublespots-for-beginners/</a></p>
<p><a title="django" href="http://net.tutsplus.com/tutorials/other/intro-to-django-building-a-to-do-list/" target="_blank">http://net.tutsplus.com/tutorials/other/intro-to-django-building-a-to-do-list/</a></p>
<p>4 adet django giriş dersi</p>
<p><a title="django" href="http://armuting.blogspot.com/search/label/django" target="_blank">http://armuting.blogspot.com/search/label/django</a></p>
<p>2 adet slide</p>
<p><a title="django" href="http://blog.insicdesigns.com/2010/03/learning-django-web-development-framework/" target="_blank">http://blog.insicdesigns.com/2010/03/learning-django-web-development-framework/</a></p>
<p>Django kurulumu ve giriş</p>
<p><a title="django" href="http://www.birazkisisel.com/category/web-programlama/django-web-programlama/" target="_blank">http://www.birazkisisel.com/category/web-programlama/django-web-programlama/</a></p>
<p>Django cheatsheet v1</p>
<p><a title="django" href="http://www.mercurytide.co.uk/news/article/django-cheat-sheet/" target="_blank">http://www.mercurytide.co.uk/news/article/django-cheat-sheet/</a></p>
<p>Django ile alakalı birkaç yazı</p>
<p><a title="django" href="http://serkan.gen.tr/kategori/django" target="_blank">http://serkan.gen.tr/kategori/django</a></p>
<p><strong>Django ile yapılmış kaynak kodları açık siteler</strong></p>
<p>235+ adet sitenin kaynak kodları</p>
<p><a title="django" href="http://www.djangosites.org/with-source/" target="_blank">http://www.djangosites.org/with-source/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://ftoptas.com/django-ogrenebileceginiz-24-kaynak/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Django Dersleri &#8211; 3: Google App Engine &amp; Django</title>
		<link>http://ftoptas.com/django-dersleri-3-google-app-engine-django/</link>
		<comments>http://ftoptas.com/django-dersleri-3-google-app-engine-django/#comments</comments>
		<pubDate>Thu, 28 May 2009 11:30:37 +0000</pubDate>
		<dc:creator>ceyranci</dc:creator>
				<category><![CDATA[django]]></category>
		<category><![CDATA[google app engine]]></category>
		<category><![CDATA[django dersleri]]></category>

		<guid isPermaLink="false">http://ftoptas.wordpress.com/?p=224</guid>
		<description><![CDATA[Google App Engine ilk çıktığında]]></description>
			<content:encoded><![CDATA[<p><a href="http://code.google.com/intl/tr-TR/appengine/" target="_blank">Google App Engine</a> ilk çıktığında sadece Python desteklemekteydi. Fakat birkaç ay önce Java&#8217; da desteklemeye başladı. Umarız ilerleyen zamanlarda diğer dilleri de destekler. Bu servis açık kaynak yazılım geliştirmek isteyenler için bulunmaz bir nimet. Özellikle <a href="http://www.djangoproject.com" target="_blank">Django</a>&#8216;nun büyüsüne kapılıp sonra da onu çalıştıracak ücretisiz :D bir sunucu bulamayan bizler için. Her sunucu django desteklemediği için ve django destekli sunucuların mailyetinin fazla olduğu için isteğiniz biraz kaçabilir. Ama Google App Engine bu konuda bize yardımıcı oluyor. Şimdi App Engine sunucumuzda nasıl django çalıştırabileceğimize bakalım. Burada bazı farklılıklarla karşılaşacağız. Bunlardan en önemlisi modellerdeki farklılıklar. Django&#8217;nun <span style="color:#0000ff;">django.db.models.Model</span> nesnesini kullanmıyoruz. Onun yerine <span style="color:#0000ff;">google.appengine.ext.db.Model</span> nesnesini kullanıyoruz. Metotlar birbirine yakın olduğu için alışmamız uzun sürmez. Bir de Gql diye birşey var. SQL&#8217;in Googlecası diyebiliriz. Bu kadar konuştuktan sonra kodlamaya geçebiliriz.</p>
<p>Bu kısma geçmeden önce App Engine kurulumu ile alakalı ön bilgi almak için <a href="http://ftoptas.com/google-app-engine-ile-uygulama-gelistirme/" target="_blank">şuradaki</a> yazıyı okumanızı öneririm.</p>
<p>Klasik bir blog uygulaması yapalım.</p>
<p><span id="more-224"></span></p>
<p><span style="color:#008000;">django-blog</span> isminde bir dizin oluşturup içine <span style="color:#008000;">app.yaml</span> dosyamızı oluşturalım. İçeriği şöyle olsun</p>
<pre class="python">application: django-blog
version: 1
runtime: python
api_version: 1

handlers:
- url: /.*
script: main.py</pre>
<p>Ardından <span style="color:#008000;">app.yaml</span> dosyasının yanına <span style="color:#008000;">main.py</span> dosyasını oluşturuyoruz. İçeriği şöle olsun</p>
<pre class="python">import os, sys

from django.conf import settings
settings._target = None

os.environ["DJANGO_SETTINGS_MODULE"] = "blog.settings"
sys.path.append("E:\\app_engine\\django-blog")

from google.appengine.ext.webapp import util
from django.conf import settings

settings._target = None

import django.core.handlers.wsgi
import django.core.signals
import django.db
import django.dispatch.dispatcher

django.dispatch.dispatcher.disconnect(django.db._rollback_on_exception,django.core.signals.got_request_exception)

def main():
    application = django.core.handlers.wsgi.WSGIHandler()
    util.run_wsgi_app(application)

if __name__ == "__main__":
    main()</pre>
<p>Burada 7. satırı biraz önce oluşturduğumuz <span style="color:#008000;">django-blog</span> dizininin yolunu yazıyoruz. 6. satır ise birazdan oluşturacağımız projenin adı. Yani django-admin.py startproject komutuyla oluşturacağımız proje.</p>
<p>Komut penceresini açıp <span style="color:#008000;">django-blog</span> dizinine geldikten sonra <span style="color:#008000;">blog</span> isminde bir django projesi başlatıyoruz.</p>
<p><span style="color:#0000ff;">django-admin.py startproject blog</span></p>
<p>Şimdi çalışıp çalışmadığını görmek için sunucumuzu çalıştırıyoruz.</p>
<p><span style="color:#0000ff;">dev_appserver.py django-blog/</span></p>
<p>Şimdi <span style="color:#008000;">http://localhost:8080/</span> adresinden Congrulations sayfasını görüyoruz. Artık django çalışıyor. Eğer göremiyorsanız başa dönüp tekrar gözden geçirin.</p>
<p>Komut penceresinden <span style="color:#008000;">django-blog/blog</span> dizinine gelip <span style="color:#008000;">blogum</span> isminde bir uygulama başlatıyoruz.</p>
<p><span style="color:#0000ff;">python manage.py startapp blogum</span></p>
<p>Bu komutla birlikte <span style="color:#008000;">blogum</span> isminde bir dizin oluşacak. Bu dizinin içindeki <span style="color:#008000;">models.py</span> dosyasına modelimizi tanımlayalım.</p>
<pre class="python">from google.appengine.ext import db

class Yazi(db.Model):
yazan = db.UserProperty()
metin = db.StringProperty(multiline=True)</pre>
<p>Modelde <span style="color:#008000;">yazan</span> ve<span style="color:#008000;"> metin</span> olmak üzere iki elaman tanımladık.</p>
<p>Djangonun en sevdiğin kısmı olan <span style="color:#008000;">urls.py</span> dosyasını da şöyle yapıyoruz:</p>
<pre class="python">from django.conf.urls.defaults import *
from blog.blogum.views import index,ekle

urlpatterns = patterns('',
(r'^blog/$',index),
(r'^blog/ekle/$',ekle),
)</pre>
<p>Burada <span style="color:#008000;">/blog</span> adresinde <span style="color:#008000;">index</span> fonksiyonunu ve <span style="color:#008000;">/blog/ekle</span> adresinde de <span style="color:#008000;">ekle</span> fonksiyonunu çağıracağını bilidiriyoruz. Buradaki <span style="color:#008000;">urlpatterns</span> değeri düzenli ifadeler(regular expressions ) kullanılarak oluşturuluyor. Düzenli ifadeler hakkında bilgi edinmek için <a href="http://docs.djangoproject.com/en/dev/topics/http/urls/" target="_blank">şuraya</a> ve <a href="http://www.ceviz.net/duzenli-ifadeler-giris_a258.html" target="_blank">şuraya</a> bakabilirsiniz.</p>
<p>Aynı dizindeki <span style="color:#008000;">views.py </span>dosyasına da olayları yazıyoruz:</p>
<pre class="python">from django.http import HttpResponse, HttpResponseRedirect
from django.shortcuts import render_to_response
from google.appengine.ext import db
from google.appengine.api import users
from blog.blogum.models import Yazi

def index(request):
    yazilar = Yazi.all()
    yazilar = yazilar.fetch(1000)
    if users.get_current_user():
        url = users.create_logout_url(request.path)
        url_text = "Cikis"
    else:
        url = users.create_login_url(request.path)
        url_text = "Giris"
    sablon_param = {"yazilar":yazilar,"url":url,"url_text":url_text}
    return render_to_response("index.html",sablon_param)

def ekle(request):
    metin = request.POST["metin"]
    yazi = Yazi()
    yazi.metin = metin
    if users.get_current_user():
        yazi.yazan = users.get_current_user()
    yazi.put()
    return HttpResponseRedirect("/blog")</pre>
<p>Burada iki fonksiyonumuz var biri <span style="color:#008000;">index</span> biri de<span style="color:#008000;"> ekle</span>, index fonksiyonunda yazilari veritabanından okuyoruz. İlk 1000 yazıyı çekiyoruz.  1000 yazmamızın nedeni ise veritabanından veri okurken en fazla 1000 adet okuyabiliyoruz. Bu sınırlama App Engine tarafından yapılıyor.</p>
<p><span style="color:#0000ff;">users.get_current_user()</span> fonksiyonu ile kullanıcının giriş yapıp yapmadığına bakıyoruz. Buradaki kullanıcı girişinden kasdımız Gmail hesabıyla giriştir. Lokalden çalıştırırken buraya giriş yapıp herhangi bir mail adresi yazabiliyorsunuz. Ama uygulamayı App Engine sunucularına yükledikten sonra Gooogle hesabıyla giriş yapılıyor.</p>
<p>Django&#8217;nun vazgeçilmezlerinden biri olan sablonları kullanıyoruz. Sablona parametrelerini girdikten sonra <span style="color:#0000ff;">render_to_response</span> komutuyla sablonu render ediyoruz.</p>
<p>ekle fonksiyonunda ise POST metoduyla gelen veriyi okuyoruz. Eğer kullanıcı giriş yaptıysa yazinin yazarı oluyor. Eğer yapmadıysa yazi.yazan değeri boş oluyor. Bunu da şablonumuzda sorgulatarak &#8220;anonim&#8221; olarak belirtiyoruz. Yani kullanıcı giriş yapmadan yazı yazarsa yazan kısmı anonim olarak görünüyor.<span style="color:#0000ff;"> put() </span>fonksiyonuyla veritabanına yazdığımız veriyi ekliyoruz. Son olarak <span style="color:#008000;">&#8220;/blog</span>&#8221; sayfasına yönlendiriyoruz.</p>
<p>Şablon kullanmak için şablon dizinlerini djangoya belirtmemiz gerekiyor. Bunun için<span style="color:#008000;"> django-blog/blog/settings.py</span> dosyasına bir ekleme yapacağız. Bu dosyada <span style="color:#0000ff;">TEMPLATE_DIRS</span> değişkenine şablon dosyamızın yolunu ekliyoruz. Ben <span style="color:#008000;">djang0-blog/blog/blogum</span> dizinin içine <span style="color:#008000;">sablon</span> isminde bir oluşturup <span style="color:#008000;">index.html</span> dosyasını oraya koydum. O zaman değişikliği şöyle yapıyoruz:</p>
<pre class="python">TEMPLATE_DIRS = (
"e:\\app_engine\\django-blog\\blog\\blogum\\sablon"
)</pre>
<p>sablon dizinin içine <span style="color:#008000;">index.html</span> dosyasını oluşturuyoruz.</p>
<pre class="html">&lt;a href ="{{ url }}"&gt;{{ url_text }}&lt;/a&gt;
&lt;h1&gt;Blog&lt;/h1&gt;
{% for yazi in yazilar %}
{% if yazi.yazan %}
{{ yazi.yazan.nickname }}
{% else %}
anonim
{% endif %}
&lt;blockquote&gt;{{ yazi.metin|escape }}&lt;/blockquote&gt;
{% endfor %}

&lt;form action="/blog/ekle/" method="post"&gt;
&lt;textarea name="metin" rows="3" cols="40"&gt;&lt;/textarea&gt;
&lt;input type="submit" value="Gönder"&gt;
&lt;/form&gt;</pre>
<p>Burada kullanıcının giriş yapıp yapmadığına bakarak giriş veya çıkış linklerini koyuyoruz. Ardında sablonda belirttiğimiz yazilar değerini bir for döngüsüyle okuyup ekrana yazdırıyoruz. Oluşturduğumuz form ile <span style="color:#008000;">&#8220;/blog/ekle/&#8221;</span> adresine post metoduyla yazdığımız yazının gönderilmesini sağlıyoruz.</p>
<p>Veritabanındaki verilerin tamamını silmek için sunucuyu şu komutla başlatıyoruz:</p>
<p><span style="color: #0000ff;">dev_appserver.py &#8211;clear_datastore django-blog/</span></p>
<p>Hepsi bu kadar, kolay gelsin&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://ftoptas.com/django-dersleri-3-google-app-engine-django/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Google App Engine ile Uygulama Geliştirme</title>
		<link>http://ftoptas.com/google-app-engine-ile-uygulama-gelistirme/</link>
		<comments>http://ftoptas.com/google-app-engine-ile-uygulama-gelistirme/#comments</comments>
		<pubDate>Tue, 21 Apr 2009 17:36:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[django]]></category>
		<category><![CDATA[google app engine]]></category>
		<category><![CDATA[app engine kurulumu]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://ftoptas.wordpress.com/?p=218</guid>
		<description><![CDATA[Bugün Google App Engine ile]]></description>
			<content:encoded><![CDATA[<p>Bugün Google App Engine ile biraz uğraşayım dedim. Gerçekten çok hoşuma giti. Guestbook tutorial&#8217;ini sonuna kadar okudum ve uyguladım. Sadece 1.5 KB&#8217;lık bir Python betiği sonucunda ortaya çıkan uygulama gayet şaşırtıcı. Gmail hesabınızla giriş yapıp yazı yazılabileceğiniz bir ziyaretçi defteri. Eğer python ile uygulama geliştriyorsanız veya böyle bir fikriniz varsa şiddetle tavsiye ederim. En çok beğendiğim kısmı ise Django kurabilmemiz. Ayrıca bir proje birden fazla kullanıcı tarafından geliştirilebiliyor. Bir proje için 500 MB alan veriyor (beleş tarifede) . Trafik, CPU kullanımı vs. gibi bazı özellikleri arttırmak istediğimizde ise para ödemek zorunda kalıyoruz. Küçük ve orta ölçekte uygulamalar için para ödemeden kullanılabilir gibi görünüyor.</p>
<p>Kısaca nasıl kullanıldığını anlatayım.</p>
<ul>
<li><a href="http://code.google.com/appengine/" target="_blank">şuradan</a> Google App Engine&#8217;e gmail hesabınızla üye oluyorsunuz. Sms ile aktivasyon yapmanız gerekiyor.</li>
<li><a href="http://appengine.google.com/" target="_blank">şuradan</a> Create an Application dedikten sonra bir uygulama oluşturuyoruz. Bir gmail hesabıyla 10 toplam 10 adet uygulama oluşturabiliyoruz.</li>
<li><a href="http://code.google.com/appengine/downloads.html" target="_blank">şuradan</a> Google App Engine SDK&#8217;yı indirip kuruyoruz.</li>
<li><a href="http://code.google.com/appengine/docs/" target="_blank">şuradan</a> dökümantasyonu okuyup nasıl başlayacağımızı öğreniyoruz.</li>
</ul>
<p><span id="more-218"></span></p>
<p>Tutorialdaki örneği birlikte yapalım:</p>
<ul>
<li><span style="color:#800000;">helloworld</span> isminde bir dizin oluşturup içine <span style="color:#800000;">app.yaml</span> isminde bir dosya oluşturalım ve içeriği şöyle olsun:</li>
</ul>
<pre class="python">application: helloworld
version: 1
runtime: python
api_version: 1

handlers:
- url: /.*
  script: helloworld.py</pre>
<ul>
<li>Yukarıda projemizi tanımlayan bir dosya oluşturduk. Uygulama ismi <span style="color:#800000;">helloworld</span>, versiyonu <span style="color:#800000;">1</span>, çalışma ortamı <span style="color:#800000;">python</span>, api versiyonu <span style="color:#800000;">1</span> ve /* adresinin kaynak dosyası da <span style="color:#800000;">helloworld.py</span></li>
<li><span style="color:#800000;">helloworld</span> dizininin içine <span style="color:#800000;">helloworld.py</span> isminde bir dosya oluşturup içeriğini şöyle yapalım:</li>
</ul>
<pre class="python">print 'Content-Type: text/plain'
print ''
print 'Hello, world!'</pre>
<ul>
<li>DOS komut isteminden <span style="color:#800000;">dev_appserver.py helloworld/</span> komutunu verip sunucumuzu çalıştıralım. Bu komutu yazarken <span style="color:#800000;">helloworld</span> dizininin bir üst dizininde olmalıyız.</li>
<li>Web tarayıcımızdan <span style="color:#800000;">http://localhost:8080/</span> yazdıktan sonra kodlarımızın çalıştığını görebiliriz. Ekranda sadece bir <span style="color:#0000ff;">Hello, world!</span> görüyoruz.</li>
<li>Uygulamamızı sunucuya yüklemeden önce app.yaml dosyasındaki <span style="color:#800000;">application: helloworld</span> satırını değiştirmemiz lazım. <span style="color:#800000;">helloworld</span> yerine kaydolurken belirlediğimiz projenin ismini yazalım.</li>
<li>Yaptıklarımızı App Engine sunucularına yüklemek için komut isteminden <span style="color:#800000;">appcfg.py update helloworld/</span> yazdığımızda bizden gmail kullanıcı adını ve parolasını sorduktan sonra yükleyecektir.</li>
<li><span style="color:#800000;">uygulama-adi.appspot.com</span> adresinden uygulamanızı görebilirsiniz.</li>
</ul>
<p>Ayrıntılı dökümantasyon için şuraya bakabilirsiniz. Ama önce şu sayfalara bakmanızı tavsiye ederim: <a href="http://code.google.com/appengine/docs/python/gettingstarted/introduction.html">giriş</a>, <a href="http://code.google.com/appengine/docs/python/gettingstarted/devenvironment.html">geliştirme ortamı</a>, <a href="http://code.google.com/appengine/docs/python/gettingstarted/helloworld.html">merhaba dünya</a>, <a href="http://code.google.com/appengine/docs/python/gettingstarted/usingwebapp.html">webapp çatısının kullanımı</a>, <a href="http://code.google.com/appengine/docs/python/gettingstarted/usingusers.html">kullanıcı servisleri</a>, <a href="http://code.google.com/appengine/docs/python/gettingstarted/handlingforms.html">webapp formları</a>, <a href="http://code.google.com/appengine/docs/python/gettingstarted/usingdatastore.html">datastore kullanımı</a>, <a href="http://code.google.com/appengine/docs/python/gettingstarted/templates.html">şablon kullanımı</a>, <a href="http://code.google.com/appengine/docs/python/gettingstarted/staticfiles.html">statik dosya kullanımı</a>, <a href="http://code.google.com/appengine/docs/python/gettingstarted/uploading.html">uygulamayı yükleme</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://ftoptas.com/google-app-engine-ile-uygulama-gelistirme/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Django Dersleri -2 (Başlangıç)</title>
		<link>http://ftoptas.com/django-dersleri-2-baslangic/</link>
		<comments>http://ftoptas.com/django-dersleri-2-baslangic/#comments</comments>
		<pubDate>Tue, 07 Oct 2008 17:30:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[django]]></category>
		<category><![CDATA[django dersleri]]></category>
		<category><![CDATA[django kurulumu]]></category>
		<category><![CDATA[python framework]]></category>
		<category><![CDATA[web tasarım]]></category>

		<guid isPermaLink="false">http://ftoptas.wordpress.com/?p=38</guid>
		<description><![CDATA[Python, Django, MySQL, MySQLdb uygulamalarını]]></description>
			<content:encoded><![CDATA[<p>Python, Django, MySQL, MySQLdb uygulamalarını kurduktan sonra ilk sitemizi yazmaya başlayabiliriz.Öncelikle <span style="color:#800000;">django-admin.py</span> dosyasını PATH değişkenine eklememiz lazım.Linux tabanlı bir işletim sistemi kullanıyorsanız terminale aşağıdaki satırı yazmanız yeterlidir;</p>
<blockquote><p><span style="color:#800000;">sudo ln -s /usr/lib/pyhton2.5/site-packages/django/bin/django-admin.py /usr/local/bin/django-admin.py</span></p></blockquote>
<p>Windows kullanıcıları da,</p>
<blockquote><p>Denetim Masası -&gt; Sistem -&gt; Gelişmiş -&gt; Ortam Değişkenleri -&gt; Sistem Değişkenleri bölümünden PATH değişkenini seçip Düzenle butonuna tıklayıp gördüğümüz satıra <span style="color:#800000;">;C:Python25</span> <span style="color:#000000;">ekleyip Tamam dedikten sonra tamamlanmış olacak.</span></p></blockquote>
<p>Bunu yaptıktan sonra herhangi bir dizinden django-admin.py dosyasına ulaşabileceksiniz.Şimdi django projelerinizi kaydedeceğiniz bir dizin oluşturun(ör. d:django ) ve terminalden o dizini seçin.</p>
<blockquote><p>Not: Eğer Windows kullanıcısı iseniz terminal yerine DOS Komut İstemini kullanacaksınız. Ben sürekli terminal ifadesini kullanacağım.</p></blockquote>
<p><span id="more-38"></span></p>
<p>Terminalden proje dizinimizi seçtikten sonra <span style="color:#800000;">django-admin.py startproject sitem</span> yazdıktan sonra sitem isimli bir dizin ve içinde birkaç dosya oluşacaktır.Eğer <span style="color:#ff0000;">Permission denied</span> hatası alırsanız kodun başına <span style="color:#800000;">sudo</span> yazıp deneyin(<span style="color:#800000;">sudo django-admin.py startproject sitem</span>) .</p>
<blockquote><p><span style="color:#008000;">Nedir bu sudo?</span> sudo linux kullanıcılarının sıkça kullandığı bir komuttur.Kullanıcı gruplarının yetkileri farklı olduğu için her kullanıcı her işlemi yapamamaktadır.İstediği yerde dizin veya dosya oluşturup silme yetkisi yoktur.Fakat sudo kullandığımızda bu yetkileri almış oluyoruz.Biraz önce kullandığımız komut sitem adında bir dizin oluşturacağı için bu yetkiye sahip olmamız gerekiyor.sudo komutunu her kapıyı açan bir anahtar olarak düşünebiliriz.</p></blockquote>
<p>Şimdi oluşturduğumuz dizin içine bir bakalım ne var ne yok.sitem dizininin içinde 4 dosya görüyoruz:</p>
<p><span style="color:#008000;">__init__.py</span> : Pythonu kandırmak için bir metod.Pythonun dizinimizi bir modül olarak algılamasını sağlar.</p>
<p><span style="color:#008000;">manage.py</span> : Djangoyla çalışabilmek için komut satırında kullandığımız bir dosya.</p>
<p><span style="color:#008000;">settings.py</span> : Ayarların saklanığı dosya.</p>
<p><span style="color:#008000;">urls.py</span> : Adreslemenin yapıldığı dosyadır. Yani sitenizde hangi adreste hangi içeriğin olacağını ayarladığınız bölümdür.</p>
<p>Terminale <span style="color:#800000;">python manage.py runserver</span> yazdığımızda sunucumuzu çalıştırmış olacağız.Herhangi bir port ayarlaması yapmadığımız için varsayılan ayar olarak 127.0.0.1:8000 adresinden sunucumuz yayınlanacaktır.Web tarayıcınıza <span style="color:#800000;">http://127.0.0.1:8000/</span> adresini girdiğinizde aşağıdaki sayfayı göreceksiniz.</p>
<p><a href="http://ftoptas.files.wordpress.com/2008/10/django-congratulations.png"><img class="alignnone size-medium wp-image-41" title="django-congratulations" src="http://ftoptas.files.wordpress.com/2008/10/django-congratulations.png?w=300" alt="" width="300" height="90" /></a></p>
<p>Bu şimdiye kadar hiç hata yapmadığınız anlamına gelmektedir.Eğer sunucunuzu farklı bir ip adresinden veya porttan başlatmak isterseniz;</p>
<blockquote><p><span style="color:#800000;">python manage.py runserver 8080</span> veya</p>
<p><span style="color:#800000;">python manage.py runserver 0.0.0.0:8080</span> seçeneklerini kullanabilirsiniz.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://ftoptas.com/django-dersleri-2-baslangic/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Django Dersleri &#8211; 1 (Python, Django, MySQL, MySQLdb Kurulumu)</title>
		<link>http://ftoptas.com/22/</link>
		<comments>http://ftoptas.com/22/#comments</comments>
		<pubDate>Sun, 14 Sep 2008 10:58:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[django]]></category>
		<category><![CDATA[django dersleri]]></category>
		<category><![CDATA[django kurulumu]]></category>
		<category><![CDATA[mysql kurulumu]]></category>
		<category><![CDATA[mysqldb kurulumu]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[python framework]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[web tasarım]]></category>

		<guid isPermaLink="false">http://ftoptas.wordpress.com/?p=22</guid>
		<description><![CDATA[Django Python tabanlı bir web]]></description>
			<content:encoded><![CDATA[<p style="margin-left:.13cm;text-indent:.58cm;margin-bottom:0;" align="left"><span style="color:#000000;"><span style="font-family:AlMohanad;"><span style="font-size:small;"><span style="background:transparent none repeat scroll 0 0;">Django Python tabanlı bir web geliştirme çerçevesidir.(Web Development Framework) Geliştirilmesindeki amaç web tasarımını kolaylaştırmak, daha kısa sürede yapmak ve kod tekrarını en aza indirebilmektir.Django ile çok kısa sürede yüksek seviyeli ve kaliteli web sayfları hazırlayabilrisiniz.</span></span></span></span></p>
<p style="margin-left:.13cm;text-indent:.58cm;margin-bottom:0;" align="left"><span style="color:#000000;"><span style="font-family:AlMohanad;"><span style="font-size:small;"><span style="background:transparent none repeat scroll 0 0;">Djangoda sizin için hazır kütüphaneler bulumaktadır.Mesela form oluşturmak için sayfalarca kod yazmak yerine hazır kütüphane kullanıp birkaç satırda formunuzu oluşturabilirsiniz.</span></span></span></span></p>
<p><strong>Python Kurulumu</strong></p>
<p>Django kurmak için sisteminizde Pythonun kurulu olması gerekir. Eğer linux tabanlı bir işletim sistemi kullanıyorsanız zaten yüklüdür.Linux tabanlı bir işletim sistemi kullananlar bu kısmı atlayıp Django kurulumuna geçebilir.</p>
<p><span id="more-22"></span></p>
<p>Pythonu <a title="python.org" href="http://www.python.org/" target="_blank">http://www.python.org/</a> adresinden indirip kurabilirsiniz.</p>
<p><strong>Django Kurulumu</strong></p>
<p>Djangoyu <a title="http://www.djangoproject.com/download" href="http://www.djangoproject.com/download" target="_blank">http://www.djangoproject.com/download</a> adresinden indirebilirsiniz. &#8220;Get the latest official version&#8221; başlığının altında son sürümünü indirebilirsiniz. Biz 0.96.2 versiyonunu kullanacağız. İndirdiğiniz dosya sıkıştırılmış bir dosya olacaktır. Bu dosyayı açıp içindeki dosyalar çıkarılır (execute). Daha sonra Terminal (linux kullanıcıları için) veya DOS(windows kullanıcıları için) komut isteminden çıkardığımız dizin seçilir ve <span style="color:#800000;">python setup.py install</span> komutu verilir.</p>
<blockquote><p>dizin seçmek için cd komutu kullanılır.</p></blockquote>
<p><strong>MySQL Kurulumu</strong></p>
<p>Bu kısım ilk etapta gerekmiyor fakat ileride lazım olacağı için şimdiden kuruyoruz. Django veritabanı olarak ben MySQL seçtim ama farklı veritabanı sistemleri de kullanılabilir. Djangonun desteklediği veritabanı sistemleri: PostgreSQL, MySQL, SQLite, Microsoft SQL Server, Oracle.</p>
<p>Eğer linux tabanlı bir işletim sistemi kullanıyorsanız (ör: Ubuntu) MySQL kurmak sizin için çok basit.</p>
<blockquote><p>Terminali açıp <span style="color:#800000;">sudo apt-get install mysql-server</span> yazmanız yeterli.</p></blockquote>
<p>Windows kullanıcılarının biraz daha uğraşması lazım :)</p>
<blockquote><p><a title="http://dev.mysql.com/downloads/" href="http://dev.mysql.com/downloads/" target="_blank">http://dev.mysql.com/downloads/</a> adresinden işletim sisteminize  uygun dosyayı indirip kurmalısınız.</p></blockquote>
<p><strong>MySQLdb Kurulumu</strong></p>
<p>MySQLdb bir python kütüphanesidir. Python içinde MySQL kullanmanızı sağlar. MySQLdbyi <a title="http://sourceforge.net/project/showfiles.php?group_id=22307" href="http://sourceforge.net/project/showfiles.php?group_id=22307" target="_blank">http://sourceforge.net/project/showfiles.php?group_id=22307</a> adresinden indirebilirsiniz veya terminalin gücünü kullanabilirsiniz. İşte ubuntuya geçmek için bir sebep daha. Terminalden <span style="color:#800000;">sudo apt-get install python-mysql <span style="color:#000000;">yazmanız yeterli.</span></span></p>
<p>Artık Djangoya başlayabiliriz.Gerekli yazılımların hepsini kurmuş olduk. Size tavsiyem bir an önce açık koda geçin. Farkı hissedeceksiniz. Başlangıç için Ubuntu 8.04 Hardy Heronu (şu an son sürüm) deneyebilirsiniz.</p>
]]></content:encoded>
			<wfw:commentRss>http://ftoptas.com/22/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

