Python / Django ile Web Programlama

Başlangıç: 5 Ağustos 2016 Cuma
Bitiş: 20 Ağustos 2016 Cumartesi

 

Python 25+ yıldır geliştirilen bir programlama dili, Django da 10+ yıldır onun üzerinde çalışacak biçimde geliştirilen bir MVC odaklı web çatısıdır. Django “Zaman sıkıntısı olan mükemmeliyetçiler için”dir.

Kurs, temel programlama altyapısı bulunan ve web teknolojilerine aşina kişilere yöneliktir. Python dili ve Django web çatısı ile web uygulamalarının, yazılım geliştirme araç ve sistemleri ile nasıl geliştirileceğini beraber öğreneceğiz.

 
Eğitime katılacakların sahip olması gereken özellikler:

  • Okuduğunu anlayabilecek düzeyde İngilizce bilgisi
  • Herhangi bir nesneye yönelik programlama dilinde yazılım geliştirebilmek
  • Web teknolojileri konusunda bilgi sahibi olmak (HTTP, HTML, CSS, JS, SSL, GET/POST, Cookie, vs)
  • Temel düzeyde Linux komutlarına aşinalık

 
Eğitim öncesi yapılması gerekenler:

 
Konular

  • Python’a giriş
    • Python’ı nasıl bir dildir
    • Yorumlanan ve derlenen diller
    • Kurulum ve environment hakkında bilgiler
    • Python’da kod yazmaya giriş
    • Python’ın sözdizimsel özellikleri
  • Temel Bilgiler
    • Veri tipleri
    • Temel program akışı yönetimi komutları
    • Fonksiyonlar (çağrılabilir objeler) hakkında bilgiler
    • Dekoratörler (wrapper)
    • Hata yakalamak
    • Proje: Adam Asmaca Oyunu
  • Nesne Tabanlı Programlama
    • Nesne tabanlı programlama hakkında bilgiler
    • Composition: Sınıflar nasıl oluşur
    • Inheritance: Başka bir sınıfı temel alan sınıflar
    • Mixin: Sınıfların genişletilmesi
    • Tasarım desenleri nedir ve bize ne kazandırır
    • Proje: Hayvanlar alemini sınıflara çevirmek
  • Fonksiyonel Programlama
    • Fonksiyonel programlama nedir
    • Python fonksiyonel bir dil midir
    • Temel fonksiyonel programlama konseptleri
    • Her şeyin başı map, filter ve reduce
    • Proje: Hazır veriyi temizlemek
  • Kütüphaneler
    • Paketler, modüller, kütüphaneler
    • Pip ve PyPI’a giriş
    • Paket bağımlılıkları
    • Proje: Bir kütüphanecik yazalım
  • Meta Python
    • Bir şeylere isim koymak (naming conventions)
    • Bir işin pitonik yolu
    • Python’ın tasarım prensipleri
    • Duck typing
    • Dynamic Static Strong Weak typing
  • Django’ya giriş
    • Django nedir
    • MVC kavramı ne anlama geliyor
    • Kurulum ve environment yönetimi
    • Bir proje nasıl oluşturulur
  • Modeller
    • Basit bir model tanımı
    • Modeller arasındaki ilişkiler
    • ForeignKey
    • ManyToManyField
    • ForeignKey neyimize yetmiyor?
    • Symmetrical seçeneği
    • Model Inheritance
    • Manager kavramı
    • Migrations
    • QuerySets
    • Filtering
    • Karmaşık sorgular
    • Aggregation ve Annotate
    • Optimizasyon
    • Prefect related
    • Select related
    • Values
  • Views
    • View nasıl tanımlanır
    • Templates
    • Nasıl oluşturulur ve kullanılır
    • Template inheritance
    • Template tags & filters
    • Url yönetimi
    • Request ve Response objeleri
    • Session’lar
    • Cookie’ler
    • İstemci bilgilerine ulaşmak
    • POST ve GET metodu
    • Formlar
    • Form tanımlamak
    • Validation sınıfları
    • ModelForm’lar
    • Formset ve ModelFormset kavramı
    • Class based view’lar
    • Middleware kavramı
    • Admin Uygulaması
    • Admin uygulamasını aktif etmek
    • Admin için model yönetimi
    • Özelleştirilmiş bir admin paneli
  • i18n ve l10n
    • Internalization
    • Dil dosyaları oluşturmak ve derlemek
    • Dil dosyalarını dağıtmak
    • Localization