Python ile HTTP POST/GET Metodu Kullanma
Elimizde bazı veriler var ve bunları POST veya GET metoduyla biyerlere göndermemiz lazım. Yanımızda Python betiklerini çalıştırabilicek bir cihaz (misal: herhangi bir bilgisayar -işletim sistemi farketmez- veya s60 telefon) varsa sorun yok. Hemen kodları yazmaya başlayabilirsiniz. İlk örneğimizde sadece string verileri göndereceğiz. Mesela herhangi bir siteye form bilgilerini giriyoruz.
import urllib, httplib
veriler = urllib.urlencode({'veri':'herhangi bir veri'})
headers = {"Content-type":"application/x-www-form-urlencoded","Accept":"text/plain"}
baglanti = httplib.HttpConnection("ftoptas.com")
baglanti.request("POST","/ornekform/gonder/",veriler,headers)
cevap = baglanti.getresponse()
baglanti.close()
Python ve UTF-8 Kullanımı
Python ile programlama yaparken karakter sorununa rastladıysanız sorununuzu çözecek olan şey karakter kodlamasını değiştirmektir. Bu hataya genelde Türkçe karakter kullanırken rastlamışızdır. Bunun için şu yöntemleri kullanabilirz:
Python betiğinin en başına şu satırı yazarak betiğin utf-8 olarak kodlanmasını sağlarız:
# -*- coding: utf-8 -*-
Django Dersleri – 3: Google App Engine & Django
Google App Engine ilk çıktığında sadece Python desteklemekteydi. Fakat birkaç ay önce Java’ 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 Django‘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’nun django.db.models.Model nesnesini kullanmıyoruz. Onun yerine google.appengine.ext.db.Model 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’in Googlecası diyebiliriz. Bu kadar konuÅŸtuktan sonra kodlamaya geçebiliriz.
Bu kısma geçmeden önce App Engine kurulumu ile alakalı ön bilgi almak için şuradaki yazıyı okumanızı öneririm.
Klasik bir blog uygulaması yapalım.
Google App Engine ile Uygulama GeliÅŸtirme
Bugün Google App Engine ile biraz uÄŸraÅŸayım dedim. Gerçekten çok hoÅŸuma giti. Guestbook tutorial’ini sonuna kadar okudum ve uyguladım. Sadece 1.5 KB’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.
Kısaca nasıl kullanıldığını anlatayım.
- ÅŸuradan Google App Engine’e gmail hesabınızla üye oluyorsunuz. Sms ile aktivasyon yapmanız gerekiyor.
- şuradan Create an Application dedikten sonra bir uygulama oluşturuyoruz. Bir gmail hesabıyla 10 toplam 10 adet uygulama oluşturabiliyoruz.
- ÅŸuradan Google App Engine SDK’yı indirip kuruyoruz.
- şuradan dökümantasyonu okuyup nasıl başlayacağımızı öğreniyoruz.
Python lambda Fonksiyonu
Python ile programlama yapmaya başladıktan sonra, bana pythondan daha eğlenceli gelen bir programlama dili olmadığını düşünüyorum. Pythonun en önemli özelliklerinden biri az kodla çok şey anlatabilme özelliğinin olmasıdır. Bunun bir örneği ise lambda fonksiyonudur.
lambda Fonksiyonu Ne İşe Yarar?
Fonksiyon yazmak kodlarımızın daha anlaşılır, kısa ve temiz olmasını sağlar. Aynı kodları tekrar tekrar kullanmamamız için yazarız. Fakat bazen ufak tefek işler yapmak için defalarca fonksiyon yazarız. Fonksiyonları kod tekrarı yapmamak için kullanıyorduk hani. İşte tam burada lambda fonksiyonu devreye giriyor. Tek değişkenli bir fonksiyon kullanmamız gerekiyorsa bunu işlem içinde tek satırda ekstra kod veya satır eklemeden olayı halletmemizi sağlar. Mesela elimizde bir dizi var ve dizinin her elemanını bir sayıyla çarpıp başka bir dizi oluşturmamız lazım. Bunu yapmak için bir for döngüsü kullanabiliriz fakat bu fazladan bir değişken kullanmamıza neden olur ve enaz iki satır olur. Hele bi de bu dizinin içindeki bazı elemanları bir eleme yaparak alıyorsak bu da bize bir if kullanmamıza malolur. lambda fonksiyonu genelde map(), filter(), reduce() gibi fonksiyonlarla birlikte kullanılır. Lafı fazla uzatmadan örneklere geçelim.
PyS60 (Python for Symbian) inbox modülü
Symbian telefonunuzda Python scriptlerini çalıştırabilirsiniz. PythonforS60 uygulamasını buradan indirebilirsiniz.Inbox modülü sayesinde gelen kutunuzdaki mesajların adres, içerik, okunmuş olup olmaması ve tarih bilgilerini okuyabilir; okunmamış yapabilir ve silebilirsiniz.
#e:systemappspythoninbox_deneme.py import inbox #inbox modülünü tanıtıyoruz kutum = inbox.Inbox() #kutum isminde bir inbox nesnesi tanımlıyoruz mesaj_no = kutum.sms_messages()#mesaj_no değişkenine tüm mesajların idlerini atıyoruz. print kutum.address(mesaj_no[0]) #gelen kutusundakii 0 numaralı mesajın adresini ekrana yazdırıyoruz.
Django Dersleri -2 (Başlangıç)
Python, Django, MySQL, MySQLdb uygulamalarını kurduktan sonra ilk sitemizi yazmaya başlayabiliriz.Öncelikle django-admin.py 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;
sudo ln -s /usr/lib/pyhton2.5/site-packages/django/bin/django-admin.py /usr/local/bin/django-admin.py
Windows kullanıcıları da,
Denetim Masası -> Sistem -> Gelişmiş -> Ortam Değişkenleri -> 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 ;C:Python25 ekleyip Tamam dedikten sonra tamamlanmış olacak.
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.
Not: Eğer Windows kullanıcısı iseniz terminal yerine DOS Komut İstemini kullanacaksınız. Ben sürekli terminal ifadesini kullanacağım.
Django Dersleri – 1 (Python, Django, MySQL, MySQLdb Kurulumu)
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.
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.
Python Kurulumu
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.
Python Programlama Dili
Python, ilk olarak 1990 yılında Guido Van Rossum tarafından geliştirilmeye başlanmıştır ve adını Monty Python’s Flying Circus adlı diziden almıştır.Python nesne yönelimli, yorumlanabilen, birimsel(modüler) ve etkileşimli bir programlama dilidir.
Girintilere dayalı basit sözdizimi, dilin öğrenilmesini ve akılda kalmasını kolaylaştırır. Bu da ona söz diziminin ayrıntıları ile vakit yitirmeden programlama yapılmaya başlanabilen bir dil olma özelliği kazandırır.
Modüler yapıyı, sınıf sistemini ve her türlü veri alanı girişini destekler. Python ile sistem programlama, kullanıcı arabirimi programlama,web programlama, ağ programlama, uygulama ve veritabanı yazılımı programlama gibi birçok alanda yazılım geliştirebilirsiniz. Büyük yazılımların hızlı bir şekilde prototiplerinin üretilmesi ve denenmesi gerektiği durumlarda da C ya da C++ gibi dillere tercih edilir.Python bir çok platformda çalışma özelliğinde sahiptir.
Python destekleyen platformlar:
Linux, Unix, Windows, Mac OS X, AIX, Amiga, AROS, AS/400 (OS/400), BeOS, iPod, OS/2, OS/390 ve z/OS, Diğer Unixler (Irix), Palm OS, PlayStation ve PSP, Psion, QNX, Risc OS, Symbian OS (S60), Sparc Solaris, VMS, VxWorks, Wİndows CE ve Pocket PC, Sharp Zaurus, MorphOS.




