İNTERNET TABANLI PROGRAMLAMA - Ünite7: Python ve Django Özeti :

PAYLAŞ:

Ünite7: Python ve Django

Giriş

Python, Guido Van Rossum isimli bir programcı tarafından 1991 yılında duyurulmuş zamanla kullanımı artmıştır. Python, nesne yönelimli, yorumlamalı, modüler ve etkileşimli yüksek seviyeli bir programlama dili olarak tanımlanmaktadır. Açık kaynak kodlu ve ücretsiz bir dil olması, Yorumlanan ve dinamik bir dil olması, Etkileşimli bir dil olması (Yorumlayıcı penceresinde komutlar veri sonuçlarını hemen alabilirsiniz), Söz diziminin sade ve okunabilirliğinin kolay olması, Modüler bir yapıya sahip olması, Hızlı bir şekilde öğrenilebilmesi, yeni başlayanlar için uygun olması, Nesneye yönelik programlama dili olması ama bunu mecbur tutmaması, Öğretici kaynaklarının oldukça fazla olması, Bilimsel araştırmalarda yaygın olarak kullanılması, Farklı alanlara özel çok geniş bir kütüphane, modül, paket desteğinin olması, Gelişmiş bir grafik kütüphanesinin olması, Farklı işletim sistemleri (GNU/Linux, Windows, Mac OS X, AS/400, BeOS, MorphOS, MS-DOS, OS/2, OS/390, z/ OS, RiscOS, S60, Solaris, VMS, Windows CE, HP-UX, iOS, Android vb.) üzerinde çalışabilmesi (kodu bir kez yazmak yeterli) Farklı dillerde yazılmış kodların entegrasyonunu desteklemesi, Uluslararası saygınlığının olması, Az kod yazarak çok iş yapmayı desteklemesi, 3.x serisinden itibaren UTF-8 desteğinin olması (kodlama da ğ, ı, ç, ü, ö, ş, İ, Ş, Ğ, Ü, Ö, Ç gibi karakterler kullanılabilir) gibi avantajları vardır.

Python Programlama Dili

Python dili ile programlama yapabilmek için program dilinin bilgisayarınıza kurmanız gerekir. Kurulum için öncelikle, “http://www.python.org/downloads” adresinden kurulum dosyalarını indirmemiz gerekmektedir. Kurulum aşamasından sonra python ile çalışma için iki l bulunmaktadır. Bunlardan ilki Başlat düğmesi altında Tüm programlar>Python seçeneği altında Python(Command Line) seçeneğini kullanmaktır. Diğer ise MS-DOS komut istemcisi arayüzünde python komutu vererek çalıştırmaktır. Bu işlemlerin ardından eğer bilgisayarınıza Python kurmadan denemek istiyorsanız, http://www.pythontutor . com/ adresini ziyaret ediniz. kodunuzu yazabileceğiniz bir arayüze sahip olabilirsiniz. Bu arayüzde ilk Python kodlarımızı “>>>” işaretinden sonra, hiç boşluk bırakmadan yazmamız gerekmektedir.

Programlama dilinde değişkeni, bir veriyi içerisinde depolayan birim olarak tanımlayabiliriz. Python’da tıpkı PHP de olduğu gibi veri tipleri önceden belirlenmez, değişkene yapılan ilk atama esnasında atanan veri tipine göre belirlenir. Bu programcı için büyük bir özgürlük sağlar.

Python programlama dilinde değişken tanımlamada tip belirtmeye gerek yoktur. Python ilk atama yapıldığı anda değişkenin tipini otomatik olarak belirlemektedir.

Operatörler sağında ve solunda bulunan değer/değerler üzerinde bir işlem geçekleştiren veya bir ilişki kuran işaretler olarak tanımlanabilir. Python’da diğer diller dillerde olduğu gibi atama operatörü “=”dir. Genel olarak matematiksel işlemleri gerçekleştirmemizi sağlamaktadırlar. Bu operatörler: + (toplama), - (çıkarma), * (çarpma), / (bölme), ** (kuvvet), % (modülüs), // (taban bölme) şeklinde sıralanabilir. İki veri arasında karşılaştırma ilişkisi kuran operatörler, karşılaştırma operatörleri olarak adlandırılmaktadır. Bunlar; == (eşitlik), != (eşit değil), > (büyüktür), <= (küçüktür), >= (büyük eşit), <= (küçük eşit) olarak sıralanabilir.

Tüm dillerde ilk öğrenilen fonksiyonlardan olan print fonksiyonu, istediğimiz verinin ekrana basılmasını sağlamaktadır. Aslında print fonksiyonunu şu ana kadar birçok örneğimizde kullandık. Bu bölümde ise biraz daha detaya ineceğiz. Print fonksiyonu ile yazdıracağımız string katarları tek tırnak (‘), çift tırnak (“) veya üç tane çift tırnak kullanılarak yazdırılabilir. Üç çift tırnak gösterimi genelde ekrana basmak istediğimiz karakter katarı içerisinde “ karakteri bulunduğu zaman ve yazdırılacak veri birden fazla satırdan oluşuyorsa tercih edilir.

input() Fonksiyonu konsol ekranında kullanıcıdan veri almak için kullandığımız fonksiyondur. Bu fonksiyon sayesinde kullanıcıdan gelen veriyi istediğimiz bir değişkene atabiliriz.

Verinin tipini değiştiren fonksiyonlar olarak tanımlanmaktadır. Özellikle kullanıcıdan aldığımız verilerle matematiksel işlemler gerçekleştireceksek muhakkak dönüştürülmesi gerekmektedir.

Python Program Denetimi

Programlama dillerinde program denetimi, şartlara bağlı olarak program akışını düzenlememize imkân veren, programın oluşturacağı sonuçları değiştirmemizi sağlayan yapılar olarak tanımlanabilir. Akış denetimi ve döngüler iyi bir programcının derinlemesine bilgi sahibi olması gereken yapılardır. Program akışının denetlenmesi ve kontrolü kod yazımının en önemli parçasıdır.

Python’da koşulları belirtmek için if, else, elif isimli 3 deyim kullanılmaktadır.

Python’daki, for döngüsü, PHP, JavaScript, PERL gibi dillerdeki “foreach” döngülerinin yaptığı işlevi de yüklenirler. Bir başka deyişle string, listeler (list), tüpler (tuples), sözlükler (dictionary) vb. veriler ile de kullanılabilir. While ifadesi neredeyse tüm dillerde olduğu gibi python’da da koşullu döngüler için kullanılmaktadır. while döngüsü belirtilen koşul gerçekleştiği (True) müddetçe içinde belirtilen kod bloğunu tekrar etmektedir.

Fonksiyon, bir amaç doğrultusunda bir araya gelmiş kodlar olarak tanımlanabilir. Fonksiyonlar programlamada kullanacağımız ve sürekli tekrar eden komutların kullanımını daha da kolaylaştırmak için oluşturacağımız yapılardır. Python’ da fonksiyon kullanımı iki aşamadan oluşmaktadır: tanımlama ve çağırma. Python’da bir fonksiyonun çağırılabilmesi için öncelikle tanımlanması şarttır. Tanımlanan bir fonksiyon, kodun istenen bir bölümünde fonksiyonun adı ve parametre listesi ile çağrılabilir.

Modül, birtakım fonksiyonları ve nitelikleri barındıran araçlar olarak tanımlanabilir. Modüller bizim için tekrar tekrar kod yazmamızın önüne geçen yapılardır. Bu noktada Python’un temel olarak parçalardan bir bütün elde etmek için tasarlanmış bir dil olduğunu söylemek yanlış olmaz.

Python ile Nesneye Yönelik Programlama

Python programlama dilinde, tüm program öğeleri, nesne yapısındadır. Fakat python programcıya nesneye yönelik programlamayı zorunlu kılmaz. Python’da ise içi boş bir sınıf şu şekilde tanımlanabilir.

class DortIslem:

pass

yeniİslem=dortIslem()

Eğer sınıfımıza farklı kabiliyetler kazandırmak istiyorsak metot sayısını istediğimiz kadar artırabiliriz.

Bir sınıfın üyelerini yani değişkenlerini ve metotlarını, erişim durumlarına göre ikiye ayırmak mümkündür: public (genel erişime açık), private (genel erişime kapalı).

Nesne Yönelimli Programlama dillerindeki en temel prensiplerinden biri Miras(Inheritance) kavramıdır. Bu prensip, bir sınıfın özelliklerinin ve metotlarının başka sınıflara aktarılmasına dayanır. Bu şekilde birbirlerine kodsal açıdan benzeyen sınıarı tek tek yazmak yerine, ortak noktaları belirlenerek temel bir sınıf (base class) oluşturulur. Daha sonra ise temel sınıfın ortak özellikleri üzerine yeni özellikler metotlar eklenerek türetilmiş sınıflar (derived class) oluşturulmaktadır.

Django Web Çatısı

Django, Python programlama diliyle yazılmış bir web sayfası geliştirme çatısıdır (web framework). Çatı, hızlı, güvenilir, modüler ve sağlam bir kodlama yapabilmemiz için kullanılan altyapı olarak tanımlanabilir. Django MVC (Model-ViewController) mimarisine benzer MTV (Model-View-Template) mimarisi ile çalışmaktadır. Genelde bir program yazılım süreci temel olarak aynı işlemleri içermektedir. Bu nedenle aynı kodları tekrar tekrar yazmak yerine çatının sağladığı altyapı olanakları kullanmak sürece olumlu yönde katkı yapmaktadır.

Django kurulumu için öncelikle bilgisayarınızda python yüklü olması gerekir. Ardından https://www.djangoproject.com/download/ sayfasından en son sürümü indirmeniz ve herhangi bir klasör içerisine açmanız gerekmektedir. Django kurulumu komut istemcisinin açılması django klasörüne gidilmesi ve aşağıdaki kodların yazılması gereklidir.

c:\Django> python setup.py install

Django Modeller

Günümüzde web sitelerinin birçoğu en az bir veritabanı kullanmaktadır. Django bir web sitesinin veritabanını gereksinimini karşılamak için gerekli tüm yapılara sahiptir. Sağladığı fonksiyonlar sayesinde, veritabanı kullanırken SQL komutlarını bilmemize de gerek kalmaz.