04/02/10 Django Web Uygulamaları Geliştirmede Çağdaş bir Yaklaşım
Temel özellikler Modüler, akılcı tasarım Tekrarsız kodlama (DRY) 04/02/10 Temel özellikler Modüler, akılcı tasarım Tekrarsız kodlama (DRY) Model – Şablon – Uygulama mimarisi MTV (veya MVC) Herşey doğru yerde Genişletilebilir yapı Yüksek yönetilebilirlik Django – Onur Mat
Nesne tabanlı modelleme 04/02/10 Nesne tabanlı modelleme Veri modelinizin öğeleri Python nesneleridir SQL yazmadan erişim Veritabanı soyutlaması MySQL, PostgreSQL, Oracle, SQLite desteği Aynı arayüz ile erişim django - onur mat
Zarif URL’ler Okunabilir URL’ler 04/02/10 Zarif URL’ler Okunabilir URL’ler /index.php?cat=123&p=4&sid=qwe123 yerine /blog/duyuru/django-semineri/ URL’lerinizi fonksiyonlarınızla eşleştirin Regular expression kullanarak URL’lerinizi tanımlayın Platform kısıtlaması yok django - onur mat
04/02/10 Şablon Sistemi Grafik tasarımın işlevsel taraftan ve içerikten tamamen ayrılması Genişletilebilir esnek şablon dili Nesne tabanlı yaklaşım django - onur mat
Kaşe Sistemi İstenilen çözünürlükte kaşeleme 04/02/10 Kaşe Sistemi İstenilen çözünürlükte kaşeleme tüm sayfa veya tek bir sorgu veya bir nesne İstenilen kaşe sistemi ile entegrasyon Memcached, DB, dosya, vb. ile kaşeleme Aynı arayüz ile erişim django - onur mat
Otomatik Yönetici Arayüzleri 04/02/10 Otomatik Yönetici Arayüzleri Veri modelleriniz ile birlikte yönetici arayüzünüz hazır Yayına hazır kalitede içerik ekleme – silme – değiştirme arayüzleri otomatik olarak elinizde django - onur mat
04/02/10 Çok Dil Desteği Uygulamalarınızda tercüme edilmesi gereken içeriği geliştirme sırasında işaretleyin Django size istediğiniz diller için tercüme dosyaları üretsin Uygulamanız dilediğiniz dillerde aynı şekilde çalışsın Tek satır değiştirmenize gerek yok django - onur mat
Geliştirme ortamı Django development server Uygulamanızı debug edin 04/02/10 Geliştirme ortamı Django development server Kolayca test edin Başka server kurmanıza gerek yok Uygulamanızı debug edin Standard IDE ‘lerle uyum django - onur mat
XML Bazlı İçerik Dağıtımı 04/02/10 XML Bazlı İçerik Dağıtımı RSS ve ATOM beslemeleri Tüm içeriğiniz için RSS ve ATOM beslemelerini birkaç satır kod ile üretin Sitemaps Site içeriğini sitemaps formatında oluşturun Esnek ve kolay django - onur mat
İleri özellikler Test platformları ile entegrasyon Middleware 04/02/10 İleri özellikler Test platformları ile entegrasyon Unit tests Doc tests Middleware Uygulamanız ile request / response seviyelerinde etkileşim Sinyaller Olay bazlı işlevsellik ile daha gevşek ilişkilendirme django - onur mat
Örnek Blog Uygulaması Veri modelleri URL tasarımı Uygulama katmanı 04/02/10 Örnek Blog Uygulaması Veri modelleri URL tasarımı Uygulama katmanı Şablonlar django - onur mat
Modeller from django.db import models class Blog(models.Model): 04/02/10 Modeller from django.db import models class Blog(models.Model): title = models.CharField(max_length=100) is_featured = models.BooleanField(default=False) class Entry(models.Model): body = models.TextField() blog = models.ForeignKey(Blog) django - onur mat
API erişimi > b = Blog(title=’güncel’) > b.save() 04/02/10 API erişimi > b = Blog(title=’güncel’) > b.save() > e = Entry(title=’ilk yazı’, body=’Django ile hayat daha kolay’, blog=b) > e.save() > b = Blog.objects.get(title=’güncel’) > entries = Entry.objects.filter(blog=b) > entries = b.entry_set.all() > entries[0].title ‘ilk yazı’ django - onur mat
URL tasarımı from django.conf.urls.defaults import * 04/02/10 URL tasarımı from django.conf.urls.defaults import * urlpatterns = patterns('', ('^blog/(?P<blog_id>d+)/$', 'blog.views.entry_list'), ) django - onur mat
“View” Fonksiyonları from django.shortcuts import render_to_response 04/02/10 “View” Fonksiyonları from django.shortcuts import render_to_response def entry_list(request, blog_id): blog = Blog.objects.get(id=blog_id) return render_to_response(‘blog/entry_list.html’, {‘entries’: blog.entry_set.all()}) django - onur mat
Şablon {% for entry in entries %} 04/02/10 Şablon {% for entry in entries %} <b>{{ entry.blog.title }}: {{ entry.title }}</b><br> {{ entry.body|truncatewords:50 }} {% endfor %} django - onur mat
İletişim Django Google Groups Onur Mat djangoproject.com 04/02/10 İletişim Django djangoproject.com Google Groups django-tr@googlegroups.com Onur Mat omat@teknolab.org django - onur mat