
Framework de Neyin Nesi?
Bir gün aklınıza güzel bir fikir geldi ve hemen kodlamaya başladınız. Başta çok büyük heves ve hızla kodlarken ilerleyen zamanlarda sıkılmaya başladınız ve projeyi proje yapan kısma gelemeden sıkıldınız. İşte framework (Türkçe’deki ismiyle “çerçeve”), tam da bunu engelleyen bir kavramdır. Framework'ler sizi bilumum angaryadan kurtarır ve yapılacak işin kendisine odaklanmanızı sağlar. Daha bilimsel bir tanımlamayla framework, projemizin ihtiyaç duyduğu altyapıdır ve işin güzel tarafı, birileri onu zaten yazmıştır, siz sadece projenizi kodlamakla ilgilenirsiniz!
Django?
Django kısaca; Python tabanlı bir framework'tür. Az kodla çok iş çıkarmanızı sağlar. Daha fazla bilgi için bu adrese göz atabilirsiniz.
Kurulum
Django hakkında biraz okuduğunuzu düşünerek hemen ilk yapmanız gereken işleme geçiyorum:Kurulum.
Django; “sudo pisi it Django” diyerek ya da Paket Yöneticisi’nden “Django” diye aratarak yüklenebilir.
Tabii bundan önce Python kurulu olmalıdır. Ancak bir Pardus kullanıcısının Python kurmaya ihtiyacı yoktur ;).
Veritabanı Hadisesi
Bir projeye başladıysak er ya da geç veritabanı kullanmak gerekecek. Bunun için gerekli paketler şunlar: MySQL için MySQLdb, PostgreSQL için psycopg, SQLite için pysqlite, Oracle için cx_Oracle.
Yeni başlayanlar için SQLite önerilir. Çünkü kendisi tek bir dosyadan ibarettir ve kullanıcı, parola gibi bilgiler gerektirmez. Güvenli olmadığı için ilerde tercihinizi değiştirmek istemeniz doğaldır. Bu noktada yapmanız gereken tek şey DATABASE_ENGINE satırını değiştirmektir, ki bu da Django’da karşılaştığımız güzel şeylerden biri.
Not: PostgreSQL ya da MySQL kullanıyorsak, bir veritabanının yaratılmış olması gerekir. Bu işi de “CREATE DATABASE database_name” komutu halleder. SQLite da ise böyle bir işleme gerek yoktur. İhtiyaç olduğunda veritabanı bunu kendiliğinden oluşturur. Bu da SQLite’ın başlangıç seviyesindekiler için ideal olmasının sebeplerinden biridir.
Veee… Başlıyoruz!
Django, projeye başlamanızı kolaylaştırmak için django-admin adlı bir araç sunmaktadır. Başlarken ilk komutumuz “django-admin.py startproject proje_ adi”dır. [1] Bu şekliyle “proje_adi” adında bir projenin ilk dosyalarını oluşturur ki “proje_adi” kısmını değiştirerek içinde Türkçe karakter ve nokta (.), virgül (,), noktalı virgül (;) ve iki nokta (:) geçmeyen bir ada sahip bir proje -tabii ki varsayılan çalışma dizininde (varsayılan olarak /home) oluşturabilirsiniz.
Neler oluyor orada?
Bir şey yapıyorsak ne yaptığımızı tam anlamıyla bilmeliyiz. Bir proje yarattık, haliyle içinde dosyalar var, bunların ne işe yaradığını hemen öğrenmeliyiz. Yeni yaratılan bir projede bulunan dosyalar şunlardır:
- __init__.py: Uygulamanın Python paketi olduğunu gösterir. Paketin ilk çalıştırılan dosyasıdır.
- manage.py: Yeni uygulamalar yaratırken ya da komut verirken kullanılacak python betiğini içerir.
- urls.py: İstek yapılan adresin görünümle eşleştirir.
- settings.py: Yapılandırma ayarları
Veritabanı Ayarları
Bu ayarlar tahmin ettiğiniz üzere settings.py dosyası içindedir ve biz de şimdi settings.py dosyasını düzenleyeceğiz.
DATABASE_ENGINE: Bu ifade hangi veri tabanını kullanacağımızı belirtir ki bu satır sayesinde her veritabanı için katman yazmak zorunda kalmayız. Alabileceği değerler şunlardır: postgresql_psycopg2’, ‘postgresql’, ‘mysql’, ‘sqlite3’ ve ‘oracle’.
DATABASE_NAME: Veritabanının adını içeren ifadedir. SQLite kullanıyorsak veritabanı bir dosya şeklinde olmalıdır ve bu ifadenin değeri bu dosyanın tam yolunu içermelidir. DATABASE_USERNAME: Veritabanı için kullanıcı adı. SQLite’da kullanılmaz.
DATABASE_PASSWORD: Daha önce belirtilen kullanıcıya ait veritabanı şifresi. SQLite’da kullanılmaz.
DATABASE_HOST: Veritabanının bulunduğu bilgisayarın konumunu belirtir. Eğer çalışılan bilgisayar ve veritabanı aynı bilgisayardaysa, başka bir deyişle localhostta çalışıyorsak bu değer boş bırakılmalıdır. SQLite için kullanılmaz.
Web Yayımcılığına Geçiyoruz
Bu yazıyı okuyan hemen herkesin bildiği gibi; bir web projesini yayınlamak için her şeyden önce bir “sunucu” gerekir. Kendisi dosyaları barındırır, “istemci”den gelen istekleri değerlendirir ve cevaplar. Burada önemli olan şudur; istekleri cevaplayan sunucu olduğundan sunucunun, yayımlanacak web sayfalarında kullanılan dili desteklemesi gerekir. Django ile yazılan bir projeyi yayımlamak için Python ve Django destekleyen bir sunucuya ihtiyacımız vardır. Bunu da Google bize ücretsiz olarak sunmaktadır.
Google Apps Engine
Kendisi az önce de söylediğim gibi Django uygulamalarımızı barındırabileceğimiz nadide bir Google servisidir. Kendisiyle ilgili ayrıntılı bilgiye bu adresten ulaşabilirsiniz.
Google App Engine’de Django
G.A.E’de Django çalıştırmayı, anlaşılır olması açısından, adım adım anlatıyorum:
- Google Apps Engine’e üye olun. Kendisine üye olmak ya da giriş yapmak için bu adrese bakabilirsiniz. Orada ilgili adımlar gayet anlaşılır bir şekilde anlatılıyor.
- Google Apps Engine SDK’yı kurun. Bilgisayar ve sunucu arasındaki iletişimi sağlayacak yazılım budur. Kendisini, bu adreste bulabilirsiniz. İndirdikten sonra kullanabilmek için /home/kullanıcı klasörüne açmak gerekir.
- Projeyle ilgisiz adda bir klasör yaratın. Biraz sonra yapacağımız projenin adıyla bu klasörün adı kesinlikle aynı olmamalı. Nedenini henüz anlayamadım ama isimler aynı olunca 505 hatası oluşuyor.
- Klasörün içine girin. Buradan itibaren konsol kullanmak gerekiyor. Klasör yaratmak için “mkdir”, klasöre girmek içinse “cd” komutlarını kullanabilirsiniz.
- main.py oluşturun. Main.py hakkında daha fazla bilgi için şu adrese bakabilirsiniz.
- “project.settings” kısmını düzenleyin. Bunu kendi kullanacağınız proje ismine göre değiştirmeniz gerekir.
- app.yaml oluştur. App.yaml hakkında daha fazla bilgi için şu adrese bakabilirsiniz.
- Proje adını ve sürümü düzenleyin. Proje adı main.py içine yazılan ve birazdan kullanılacak olanla aynı olmak zorundadır. Sürüm numarası kısmıyla ilgili bilgiyse GAE kısmının başında verdiğim linkte mevcut.
- Yeni proje başlatın. “django- admin.py startproject proje_adi” Projenin daha önce kullandığımız isme sahip olması zorunludur. (django-admin.py dosyası içindeki diğer komutlar “django-admin.py help” ile öğrenilebilir. Komutlarla ilgili İngilizce açıklamalara da -örneğin- “django-admin. py help startproject” ile ulaşılabilir.)
- GAE'den aynı isme sahip bir uygulama oluşturun.GAE’de sayfanın üst kısmındaki linkle ulaşılabilen uygulamalar sayfasından yeni bir uygulama oluşturulabilir.
- appcfg.py update proje_adi Bu adımla projeyi sunucuya yüklüyoruz. İlk kez yükleme yapılırken kullanıcı adı ve şifre soruyor, bir kez girdikten sonra oturum sonuna kadar bir daha sormayacaktır.
- Ve en zevkli kısım: Test edin. İnternet'te bir django hata sayfası görmek hoş olsa gerek.
- Yeni kaynaklar bulun. :)















