Uzun zamandır burada aktifliğimizi gösteremiyorduk. Bir taraftan buna üzülüyorduk, bir taraftan da çözüm arayışındaydık. Sonra, içimizde hala blog tutma isteğimizin olduğunu gördük ve zaman zaman kendi bloglarımızda yazıyorduk. Bu nedenle bir gezegen kurmaya karar verdik, sizi de oraya bekleriz.
Python gezegenine şuradan erişebilirsiniz.
http://python-gezegeni.appspot.com
Kodlar şurada, istediğiniz gibi forklayın, katılın:
https://github.com/negzel/gezegen
Bir sıkıntıyla karşılaştığınızda veya planet ile ilgili her türlü isteğinizi şuraya yazabilirsiniz:
https://github.com/negzel/gezegen/issues
25 Temmuz 2011 Pazartesi
18 Haziran 2011 Cumartesi
Python Geliştirme Ortamları
Gönderen
M. Can Bayrak
--- Bu yazı yeni başlamayı düşünenler içindir ---
Açıkcası bu soruyu cevaplarken biraz kurgu yaparak konuşacağım zira Windows ortamında pek geliştirme yapmadım. Yaptığım sırada ise yaptığım sadece daha önce geliştirdiğim bir aleti Windows'a port etmeye çalışmaktan ibaretti. Python'un kurulması, bağımlılıkların yerleştirilmesi ve geliştirmeye başlamadan önce gerekli ayarların yapılması hepsi benim için birer çileye dönüştü. Daha sonrasında ise Dos komut isteminde çalışmak, gerektiğinde ssh ile uzak makineye bağlanmak çilenin noktası oldu benim için. Bilmiyorum belki Linux ortamlarına alıştığım içindir ama gerçekten zordu. / Bu konuda yorumlarınızı bekliyorum.
Eğer Bugün Windows Üzerinde Geliştirme Yapacak Olsam;
Bağımlılık kurma meselesini pip Kullanarak çözmeye çalışırdım. Bir kere kurduktan sonra kendisi Python paketleri için kolay bir bağımlılık kurma aracı olarak çalışıyor. Terminalde ya da Dos ortamında,
Diyerek hede pakedinin kurulmasını sağlayabiliyorsunuz. Ancak bazı modüller pip ile uyumsuzlar. Örneğin geçen gün imaj görüntüleme ve düzenleme pakedi olan PIL'i kurmaya çalıştığım zaman çalışmadığını gördüm. Baya bir uğraştan sonra pip kullanırken PIL pakedini direkt olarak kurmamamız gerektiğini, onun yerine Pillow adlı PIL pakedinin uysallaştırılmış bir versiyonunu kurmak gerektiğini öğrendim.
Bunun dışında bazı paketleri yüklerken başka dillerden kütüphaneler derlenip kurulmaya çalışılıyor bu yüzden sistemde GCC'nin kurulu olması gerekli.
Neyse sözü uzatmayayım,
Her zaman söylenir, developer olmaya niyetlenmiş kişinin linux kullanması daha iyidir diye. Sebebi basit, ihtiyacınız olan olabilecek bütün tool'lar kütüphaneler sisteme kurulu olarak gelir. Olmayanları da paket yöneticiniz ile kurar geçersiniz. Dos ekranında komut vermektense bir Linux terminalinde komut vermek her zaman daha kolay ve sağlıklıdır.
Linux ortamında geliştirmeye başlamak için size gerekli olan tek şey kendinize bir ide ya da editor seçip çalışmaya başlamanızdır. Linux camiasının iki kallavi editörü var, bunlardan biri emacs, diğeri ise vim. İkisi de çok güçlü araçlar. İkisi için de eklenti geliştiren binlerce insan vardır sanırım. Ancak söz konusu dil Python ise ben PyCharm'ı tek geçerim. İndirip kullanın, hiç bir kısıtlama yok. Sadece deneme süresi geçtikten sonra kendisini yarım saatte bir kapatıyor. Bence iyi bile sayılabilir böyle olması zira ben bazen bilgisayarın başından kalkmayı unutuyorum.
Sanırım soruya cevap vermiş oldum. Bir daha ki yazıda görüşmek üzere esenkalın.
Python'a yeni başlıyorum ve windows ortamında geliştirmek istiyorum bana development ortamı için yapmam gerekenleri ve yararlı toollar önerebilir misiniz?
Windows'ta Geliştirme Yapmak
![]() |
| Windows Dert Ortamı |
Açıkcası bu soruyu cevaplarken biraz kurgu yaparak konuşacağım zira Windows ortamında pek geliştirme yapmadım. Yaptığım sırada ise yaptığım sadece daha önce geliştirdiğim bir aleti Windows'a port etmeye çalışmaktan ibaretti. Python'un kurulması, bağımlılıkların yerleştirilmesi ve geliştirmeye başlamadan önce gerekli ayarların yapılması hepsi benim için birer çileye dönüştü. Daha sonrasında ise Dos komut isteminde çalışmak, gerektiğinde ssh ile uzak makineye bağlanmak çilenin noktası oldu benim için. Bilmiyorum belki Linux ortamlarına alıştığım içindir ama gerçekten zordu. / Bu konuda yorumlarınızı bekliyorum.
Eğer Bugün Windows Üzerinde Geliştirme Yapacak Olsam;
Bağımlılık kurma meselesini pip Kullanarak çözmeye çalışırdım. Bir kere kurduktan sonra kendisi Python paketleri için kolay bir bağımlılık kurma aracı olarak çalışıyor. Terminalde ya da Dos ortamında,
pip install hedeDiyerek hede pakedinin kurulmasını sağlayabiliyorsunuz. Ancak bazı modüller pip ile uyumsuzlar. Örneğin geçen gün imaj görüntüleme ve düzenleme pakedi olan PIL'i kurmaya çalıştığım zaman çalışmadığını gördüm. Baya bir uğraştan sonra pip kullanırken PIL pakedini direkt olarak kurmamamız gerektiğini, onun yerine Pillow adlı PIL pakedinin uysallaştırılmış bir versiyonunu kurmak gerektiğini öğrendim.
Bunun dışında bazı paketleri yüklerken başka dillerden kütüphaneler derlenip kurulmaya çalışılıyor bu yüzden sistemde GCC'nin kurulu olması gerekli.
Neyse sözü uzatmayayım,
Siz En iyisi Linux Kullanın
Her zaman söylenir, developer olmaya niyetlenmiş kişinin linux kullanması daha iyidir diye. Sebebi basit, ihtiyacınız olan olabilecek bütün tool'lar kütüphaneler sisteme kurulu olarak gelir. Olmayanları da paket yöneticiniz ile kurar geçersiniz. Dos ekranında komut vermektense bir Linux terminalinde komut vermek her zaman daha kolay ve sağlıklıdır.
Linux ortamında geliştirmeye başlamak için size gerekli olan tek şey kendinize bir ide ya da editor seçip çalışmaya başlamanızdır. Linux camiasının iki kallavi editörü var, bunlardan biri emacs, diğeri ise vim. İkisi de çok güçlü araçlar. İkisi için de eklenti geliştiren binlerce insan vardır sanırım. Ancak söz konusu dil Python ise ben PyCharm'ı tek geçerim. İndirip kullanın, hiç bir kısıtlama yok. Sadece deneme süresi geçtikten sonra kendisini yarım saatte bir kapatıyor. Bence iyi bile sayılabilir böyle olması zira ben bazen bilgisayarın başından kalkmayı unutuyorum.
Sanırım soruya cevap vermiş oldum. Bir daha ki yazıda görüşmek üzere esenkalın.
5 Kasım 2009 Perşembe
Appengine'de Mail Api'nin Kullanılışı
Gönderen
Yetiş
Web sayfanızda iletişim bölümünde hazırladığınız bir form olsun ve sonuçlarını mail adresine gelmesini istiyorsunuz o zaman bu yazı size faydalı olabilir. Sıralama şu şekilde, 1.Formunuzu oluşturun, 2.Veritabanı için modelinizi yazın, 3.Formdan geleni işleyin. Öncelikle dosya yapımız;
|----- app.yaml
|----- iletisim.py
|----- model.py
|----- templates
|----------iletisim.html
Şeklindedir. Sıra sıra gitmek istiyorum. Html formumuzu oluşturalım(template/iletisim.html);
İsim ve soyisim girişi yapıldığında ve "Yolla" tıklandığında bilgilerin mail adresinize gelmesi için bir kaç adım var. Öncelikle modelimizi oluşturan python kodumuzu yazalım ("model.py")
Modelimizi de olusturduktan sonra formdan gelen veriyi islemeye geldi. Bunun icin iletisim.py python dosyamızı oluşturup işlemlerimizi yapıyoruz.
Bunlara ek olarak dikkatinizi çekmiştir. "up" fonksiyonu kullanılmış, Türkçe karakter sorununu kaldırmak üzere bir arkadaşımdan bulduğum fonksiyonu kullanabilirsiniz. İşinizi oldukça göreceğini düşünüyorum ki sadece python'da değil, hangi dilde olursa olsun bu mantık ile Türkçe karakter problemlerini ortadan kaldırabilirsiniz. Eğer Türkçe karakter (ı,ğ,ü,ş,İ,ö,ç vb..)girilmiş ise büyük harfe çevip bu karakterlerden arındırıyor. Fonksiyonumuz;
Uzun zamandır blogumuzda yazı göremiyorum. Eskiden zevkle okuyordum. Bu yazı benim 20 dakikamı aldı. Özellikle uzak sunucu işlemleri için yazıları çok merak ediyorum ve jquery,ajax,python üclüsünü kullanacak örneklerde sizlerden beklemekteyim.
|----- app.yaml
|----- iletisim.py
|----- model.py
|----- templates
|----------iletisim.html
Şeklindedir. Sıra sıra gitmek istiyorum. Html formumuzu oluşturalım(template/iletisim.html);
İsim ve soyisim girişi yapıldığında ve "Yolla" tıklandığında bilgilerin mail adresinize gelmesi için bir kaç adım var. Öncelikle modelimizi oluşturan python kodumuzu yazalım ("model.py")
from google.appengine.ext import webapp,db
class Basvuru_(db.Model):
"""
Basvuru yapilacagi zaman kullanilacak olan model
"""
ad = db.StringProperty(verbose_name="ad",required=True)
soyad = db.StringProperty(verbose_name="soyad",required=True)
##Otamatik Form Olusturmasi icin Kullanabilirsiniz
class Basvuru_form(djangoforms.ModelForm):
#Kullanisi
class Meta:
model = Basvuru_
fields = ('ad','soyad')
Modelimizi de olusturduktan sonra formdan gelen veriyi islemeye geldi. Bunun icin iletisim.py python dosyamızı oluşturup işlemlerimizi yapıyoruz.
from google.appengine.ext.webapp import template
from google.appengine.ext.webapp.util import run_wsgi_app
from google.appengine.api import users,mail
from django.shortcuts import render_to_response
import os,sys
class Iletisim(webapp.RequestHandler):
def get(self):
template_values={}
path = os.path.join(os.path.dirname(__file__), 'templates/iletisim.html')
self.response.out.write(template.render(path, template_values))
def post(self):
veri = Basvuru_form() #Bos girilip girilmedigini kontrol eder
if not veri.is_valid():
ad = up(unicode(self.request.POST["ad"]).encode("utf-8"))
soyad = up(unicode(self.request.POST["soyad"]).encode("utf-8"))
#TURKCE YAP
if ad and soyad: # isim ve soyisim girilmemisse formu kaydetmez
kayit = Basvuru_(ad=ad,soyad=soyad)
kayit.put()
if not mail.is_email_valid(ad): #eger isim yazmamissa size mail atmaz
pass
else:
sender_address = "yetis.m@gmail.com"
yollanan_adres="yetis.m@gmail.com,bilgi@spssanaliz.net"
subject = "Birisi Formu Doldurdu"
body ="\nAd Soyad : "+ad+" "+soyad+"formunuzu doldurdu."
mail.send_mail(sender_address,yollanan_adres, subject, body)
self.redirect("/ulasildi")#Burada form yollama basarili oldugunu gösteren bir mesaj verdirebilirsiniz.
else:
self.response.out.write("Bilgileri eksik girdiniz lütfen tekrar deneyiniz!!!iletisim")
else:
self.redirect("/hata")
application = webapp.WSGIApplication(
[
('/iletisim',Iletisim),
], debug=True)
Bunlara ek olarak dikkatinizi çekmiştir. "up" fonksiyonu kullanılmış, Türkçe karakter sorununu kaldırmak üzere bir arkadaşımdan bulduğum fonksiyonu kullanabilirsiniz. İşinizi oldukça göreceğini düşünüyorum ki sadece python'da değil, hangi dilde olursa olsun bu mantık ile Türkçe karakter problemlerini ortadan kaldırabilirsiniz. Eğer Türkçe karakter (ı,ğ,ü,ş,İ,ö,ç vb..)girilmiş ise büyük harfe çevip bu karakterlerden arındırıyor. Fonksiyonumuz;
def up(text):
"""Girilen TR karakterleri EN karakterlere cevirir"""
groupone = ["a", "b", "c", "\xc3\xa7", "\xc3\x87", "d", "e", "f", "g", \
"\xc4\x9f", "\xc4\x9e", "h", "\xc4\xb1", "i", "\xc4\xb0", \
"j", "k", "l", "m", "n", "o", "\xc3\xb6", "\xc3\x96", "p", \
"q", "r", "s", "\xc5\x9f", "\xc5\x9e", "t", "u", "\xc3\xbc", \
"\xc3\x9c", "v", "w", "x", "y", "z",\
"\xfe","\xde","\xfd","\xdd","\xf0","\xd0","\xfc","\xdc","\xf6","\xd6","\xe7","\xc7",\
"\u015f"]
grouptwo = ["A", "B", "C", "C", "C", "D", "E", "F", "G", "G", "G", "H", \
"I", "I", "I", "J", "K", "L", "M", "N", "O", "O", "O", "P", \
"Q", "R", "S", "S", "S", "T", "U", "U", "U", "V", "W", "X", \
"Y", "Z",\
"S","S","I","I","G","G","U","U","O","O","C","C",\
"S"]
for counter in range(len(groupone)):
text = text.replace(groupone[counter], grouptwo[counter])
return text
Uzun zamandır blogumuzda yazı göremiyorum. Eskiden zevkle okuyordum. Bu yazı benim 20 dakikamı aldı. Özellikle uzak sunucu işlemleri için yazıları çok merak ediyorum ve jquery,ajax,python üclüsünü kullanacak örneklerde sizlerden beklemekteyim.
Kaydol:
Kayıtlar (Atom)

