Ace quick missions & earn crypto rewards while gaining real-world Web3 skills. Şimdi Katıl ! 🔥
Python web geliştirme, her zaman web sitelerinin sunucu tarafını inşa etmek için ilk tercih olmamıştır. Bu dil çok amaçlı olduğundan, programlama alanlarının büyük bölümünde kullanılabilir.
Mesela uzmanlar, Python'u makine öğrenmesi ve sinir ağları geliştirmek için ideal dil olarak lanse ediyorlar. Dahası, Python aynı zamanda büyük ölçekteki veritabanlarının analizi ve bunlardan pazar yönelimlerini, ortalama fiyatları, ve gelecek örüntüleri tahmin için de ilk tercih olarak öne çıkıyor.
Ancak, Python web geliştirme için de iyi bir tercih, ve basit sözdizimi, çeşitli iskeletleri, ve ortalama olarak güçlü ekosistemiyle insanları kendine çekiyor. Piyasadaki güçlü sosyal medya sitelerinden birisi olan Instagram, platformu için Python kullanıyor ve günlük milyonlarca ziyaretçisi var.
Python ile bir web sitesi oluşturmanın makul bir karar olacağı (veya olmayacağı) sebeplere bakarak başlayalım.
İçindekiler
Python web geliştirme: avantajlar
Python web geliştirme, tarayıcıda değil sunucuda çalışan kodu geliştirmekten sorumlu olduğunuz anlamına geliyor. Web sitenizin sunucu tarafını veya arka yüzünü geliştirmek, (bir örnek olarak) kullanıcı bilgilerini tutmak için elzemdir.
Şu Anda Etkin Olan Güncel Teklifler:Take advantage of this special Udacity coupon code & access selected Udacity courses for free! Learn new skills & develop your career at zero cost.
Arka yüz, aynı zamanda bilginin sunucuya gelişini ve sunucudan çıkışını da yönetiyor. Dahası, Python ile web geliştirme sırasında kullanıcıların doğrulanmasından da siz sorumlu olacaksınız. Sunucu tarafını inşa etmek karmaşık bir iş olmasa da, prosedürlerin stabil ve güvenli olmasını sağlamak biraz zaman alabilir. Bu yüzden, iskeletler bu noktaların hepsini halletmek için kullanışlı olacaklardır.
Eğer Python ile web geliştirme öğrenmek istiyorsanız, web sunucu programlama, veritabanları, ve Flask iskeletiyle alakalı olan bu kursa göz atabilirsiniz. Eğer yeniyseniz, Python'u gerçek projeler için kullanmadan önce onun prensipleri ve programlama stillerini öğrenmeniz daha iyi olacaktır. Bizim tavsiyemiz, Python'un temellerini öğrenmek isteyenler için hazırlanmış bu kursa bakmanız.
Kolay sözdizimi: düşük öğrenme eğrisi
Python, C++ veya JavaScript gibi programlama dilleriyle karşılaştırınca en düşük öğrenme eğrilerinden birisine sahip. Python web geliştirme çalışmak isteyenler için en büyük motivasyonlardan birisi, İngilizce'ye benzer ve anlaşılır sözdizimi. Aslında, Python hiç programlama denememiş insanlar için oldukça uygundur, ancak daha uzman yazılımcılar Python'u anaokulu öğrencisi gibi görürler.
Yaygın önyargılar bir tarafa, Python birkaç iş arkadaşınızla üzerine çalıştığınız web uygulamaları için mükemmeldir. Kod genelde basittir, yani arkadaşlarınızın girdilerinizi anlamak için çok çalışmalarına gerek olmaz.
Python'un basit sözdizimi aynı zamanda detaylı ve karmaşık sistemler inşa etmek için de avantajlıdır. Geliştiriciler, elemanlar arasındaki ilişkileri anlamak ve yapılar inşa etmenin daha kolay olduğunu görecekler.
Çeşitli iskeletler
Python'un en şöhretli yönlerinden birisi onun ekosistemi, spesifik olarak da, kullanabileceğiniz iskeletlerin sayısıdır. Python web geliştirme için daha sık kullanılmaya başladığından beri, insanlara fonksiyonel siteler yapma konusunda yardımcı olan birçok web odaklı modül vardır.
Konu iskeletler olunca, herkesin öğrenmesi gereken, Python ile web geliştirmeyi mümkün kılacak en iyi tek bir Python web iskeleti yoktur. Kendinizi var olan modüllerden ayırıp sunucu tarafını tek başına inşa edebilirsiniz. Ancak, iskeletler geliştirme sürecini hızlandırdıklarından dolayı oldukça kullanışlıdırlar.
Bir diğer önemli konu da en çok özelliğe sahip iskelet herkes için uygun olmayabilir. Eğer iskeletleri onların popülerlikleri ve kullanıcı topluluklarına göre seçerseniz, ihtiyacınız olmayan özelliklere dahi sahip olmayan bir modülü öğrenip zaman kaybedebilirsiniz.
Python web geliştirme halkasında, piyasaya hakim isketlerler şunlardır: Django, WebApp2, Pyramid, Flask, TurboGears, Bottle, ve CherryPy. Burada bunların bazılarından kısaca bahsedeceğiz.
Django
Python ile bir web sitesi inşa etmek sıkça Django yardımıyla olmaktadır. Bu, karmaşık programların ana bileşenlerini sunan web odaklı bir iskelettir: doğrulama (giriş ve çıkış yapmak), yönetim paneli, dosya yüklemek için bir yapı, şablon motoru, ve URL yönlendirme. Django'da, tüm bu özellikler iskeleti kurduğunuz andan itibaren elinizin altındadır. Modül olmadan, tüm bu özellikleri elle kendiniz yapmanız gerekirdi.
Django, en esnek Python web geliştirme iskeleti değil, ama yöntemleri güvenilir ve denenmiştir. Bu, size web sitenin çekirdek bileşenlerini sunar ve web sitelerinin eşsiz yönlerine odaklanma imkanı verir.
Bu kurs size Django web iskeletinin temellerini öğretecektir. Ancak, en iyi öğrenme deneyerek olur. Bu yüzden, size bu kurslarda Django ile Python kodu yazma imkanı sunuyoruz:
- Bir restoran sitesi geliştirme.
- Bir film sayfası yapmak.
- Bir otel sitesi için kod yazma.
- OLX klonu inşa etme.
Flask
Flask, Python web geliştirme konusunda kullanabileceğiniz bir diğer iskelettir. Bu modüldeki tüm bileşenler sunucu içinde çalışmak içindir. Dahası, Flask bir mikro-iskelettir, yani diğer kütüphanelere çok az bağımlılığı vardır. Bunun sayesinde, Flask Django'ya nazaran çok daha hafiftir, ancak bir dezavantaj da Flask'ın daha az özelliğe sahip olmasıdır.
Bu yüzden, geliştiriciler bir ikilemle karşı karşıya kalıyor: Flask'ın hafif olma özelliğini korumak mı, yoksa bu iskeletin özelliklerini geliştirmek için eklentiler kurmak mı. Örneğin, Flask içerisinde form doğrulama desteği bulamayacaksınız, yani bu özellik için kodu kendiniz yazmanız veya eklentiler yoluyla almanız gerekecek.
Pyramid
Pyramid, sonraki en popüler Python web iskeletidir. Bu iskelet Flask'tan daha fazla özelliğe sahiptir ancak Dango'nun tüm becerilerinin yanına yaklaşamaz. Ancak, Pyramid en esnek iskeletlerden birisidir çünkü size bir işi tamamlamanız için bir yöntemi kullanmanızı zorunlu kılmaz. Modül size doğrulama ve URL yönlendirme desteği sunar, ancak bir veritabanına veya depolamaya harici kütüphaneler kullanarak bağlanabilirsiniz.
TurboGears
TurboGears, hem küçük hem de büyük ölçekli web projeleri için oldukça ölçeklenebilir bir iskelettir. Bu modül, tanımlama ve doğrulama, önbellek, takılabilen uygulamalar, ve oturumları yönetme gibi birçok özelliğe sahip. TurboGears ayrıca uygulamayı model, görüş, ve kontrolör olarak üçe bölen MVC modelini takip ediyor.
Bottle
Bottle, oldukça hafif ve esnek bir Python web geliştirme iskeletidir. Bu iskelet en çok, eşsiz özelliklere ihtiyaç duymayan küçük ölçekli projeler için uygundur. Bottle, WSGI uyumlu tek kaynaklı bir kütüphanedir, yani tüm kodu bir .py dosyası içerisinde bulunur. Bu, bu iskeletin yeniler için daha rahat anlaşıldığı, ancak uzman geliştiricilerin bunu basit bulabilecekleri anlamına gelebilir. Tabii ki, bu denemeler için oldukça uygundur çünkü Bottle oldukça önyargısızdır (Django gibi daha büyük ölçekli iskeletlerin aksine).
Programlama yaklaşımı
Python web geliştirme yaparken göreceğiniz avantajlardan birisi de Python'un programlama stiline olan yaklaşımıdır. Örneğin, bazı diller katı biçimde nesne yönelimlidir, yani diğer bir yaklaşıma kafanıza göre geçemezsiniz.
Python'da, fonksiyonel, emirli, prosedürel, veya nesne yönelimli bir şekilde kod yazabilirsiniz. Bu yüzden, Python size esneklik sunuyor, çünkü hangi programlama paradigmasının sizin ihtiyaçlarınıza cevap verebileceğini seçebiliyorsunuz.
Neden farklı bir dil seçmelisiniz?
Hız sorusu
Python, yorumlamalı bir dildir, yani derlenen dillere göre daha yavaştır. Bu yüzden, performansı önemli olan web uygulamalarında derlenen dilleri seçmek daha iyi olabilir. Örneğin, Java güvenilir bir seçenektir. Ancak, web geliştirme için olan diğer diller de oldukça yavaştır.
Mesela, JavaScript de bu yönden listemizin en aşağısındadır. Konu performans olunca arka yüz alanında lider dil olan PHP bile, kendi zorluklarına sahiptir. Ancak, PHP 7 çıktığından beri, geliştiriciler daha iyi hızın tadını çıkartıyorlar.

- Kullanması kolay
- Kaliteli içeriğe sahip
- Fiyat konusunda saydam
- Tamamlamada ücretsiz sertifikalar
- Veri bilimi becerilerine odaklanıyor
- Esnek eğitim programları

- Basit tasarım (gereksiz bilgi yok)
- Yüksek kaliteli dersler (ücretsizler dahil)
- Çeşitli özellikler
- Nanodegree programları
- Firmalara uygun
- Ücretli tamamlama sertifikası

- Sektörde iyi biliniyor
- Pek çok özelliğe sahip
- Dersler üniversite düzeyinde
- Üniversite düzeyince dersler
- Şirketler için uygun
- Ücretli tamamlama sertifikası
Dinamik meselesi
Python dinamik tipli bir dildir, yani hataları ve diğer problemleri çalışma anında çıkartır. Bu, hataları derleme zamanında yakalayan Java gibi dillerden farklıdır. Bu yüzden, bazı geliştiriciler hatalı Python web uygulamalarının, programları doğru çalışmayacak olsa bile ayağa kalkabilmelerinden pek de hoşnut değiller.
Son Sözler
Python web geliştirme, Python'un ana kullanım alanlarından birisi. Pyton sadece arka yüz geliştirme için kullanılabilir, yani veritabanına bağlanıp sunucuya veri gönderecek veya sunucudan veri alacaktır. Temel olarak Python, kaputun altında gerçekleşen prosedürlerin arkasındaki mantığı oluşturacaktır. Modüller söz konusu olduğunda en iyi Python web iskeleti, ihtiyaçlarınıza, becerilerinize ve esneklik gereksinimlerinize uygun olandır.
Bu yüzden, Python ön yüz geliştirme için bir seçenek değildir. Diğer bir deyişle, web sitenizin yerleşimi ve görünümünden sorumlu değildir. Python web sitenize dosyalar yüklemek için gereken yapıları halleder veya kullanıcıların doğrulanmasıyla ilgilenir. Ön yüz geliştirme için, web sitenizin şeklini ve görüntüsünü inşa eden tüm dört bileşenden bahseden bu kursu öneriyoruz.
Python ile web geliştirme mümkün olsa da, bir şirkette böyle bir pozisyon alma şansı PHP veya Java ile karşılaştırıldığında zayıftır. Bunun ana nedenlerinden biri, Python'un bu geliştirme alanında yaygın olarak kullanılmamasıdır.
Daha geniş bir ağ kurmak istiyorsanız, muhtemelen PHP, Java veya Node.js öğrenmeniz gerekir. Bununla birlikte, web geliştirme için kullanmasanız bile Python öğrenmek mükemmel bir seçenektir.
Bu dilde uzmanlaşmayı makine öğrenmesi veya veri bilimi alanları için de düşünebilirsiniz. Ancak, kompleks sözdizimleri öğrenme konusunda çekinceleri olan yeniler için, Python programlamaya başlamak için uygun bir dildir. Python ile rahatça kod yazabildikten sonra, ihtiyaçlarınıza daha iyi cevap veren diller arayabilirsiniz.

Biliyor Muydunuz?