django ile ağrısız teşhis ve tedavi

51
Nisan 2010 Atamert Ölçgen http://www.muhuk.com

Upload: muhuk

Post on 24-May-2015

1.618 views

Category:

Technology


6 download

TRANSCRIPT

Page 1: Django ile Ağrısız Teşhis ve Tedavi

Nisan 2010

Atamert Ölçgen http://www.muhuk.com

Page 2: Django ile Ağrısız Teşhis ve Tedavi

Nisan 2010

Atamert Ölçgen http://www.muhuk.com

GİRİŞ

http://github.com/muhuk/urlshortenersareevil

Page 3: Django ile Ağrısız Teşhis ve Tedavi

Nisan 2010

Atamert Ölçgen http://www.muhuk.com

GİRİŞ

http://www.youtube.com/watch?v=PLUS00QrYWw

Page 4: Django ile Ağrısız Teşhis ve Tedavi

Nisan 2010

Atamert Ölçgen http://www.muhuk.com

Page 5: Django ile Ağrısız Teşhis ve Tedavi

Nisan 2010

Atamert Ölçgen http://www.muhuk.com

KAMERA ARKASI

"Bize bir web sitesi lazım."

Page 6: Django ile Ağrısız Teşhis ve Tedavi

Nisan 2010

Atamert Ölçgen http://www.muhuk.com

KAMERA ARKASI

"Bize bir web sitesi lazım."• HTTP

Page 7: Django ile Ağrısız Teşhis ve Tedavi

Nisan 2010

Atamert Ölçgen http://www.muhuk.com

KAMERA ARKASI

"Bize bir web sitesi lazım."• HTTP

• Metin işleme

Page 8: Django ile Ağrısız Teşhis ve Tedavi

Nisan 2010

Atamert Ölçgen http://www.muhuk.com

KAMERA ARKASI

"Bize bir web sitesi lazım."• HTTP

• Metin işleme

- Çerezler

- Oturumlar

- Veritabanları

• Durumsuz bağlantı & kalıcılık

Page 9: Django ile Ağrısız Teşhis ve Tedavi

Nisan 2010

Atamert Ölçgen http://www.muhuk.com

KAMERA ARKASI

Çözüm 0: Ev Yapımı

http://commons.wikimedia.org/wiki/File:Alphabet_soup.jpg

Page 10: Django ile Ağrısız Teşhis ve Tedavi

Nisan 2010

Atamert Ölçgen http://www.muhuk.com

KAMERA ARKASI

Çözüm 0: Ev Yapımı• Sayfa paradigması: tüm bileşenler bir arada

Page 11: Django ile Ağrısız Teşhis ve Tedavi

Nisan 2010

Atamert Ölçgen http://www.muhuk.com

KAMERA ARKASI

Çözüm 0: Ev Yapımı• Sayfa paradigması: tüm bileşenler bir arada

• Basit projeleri gerçekleştirmek çok kolay.

• Karmaşıklık arttıkça değişikliklerin maliyeti katlanarak artıyor.

Page 12: Django ile Ağrısız Teşhis ve Tedavi

Nisan 2010

Atamert Ölçgen http://www.muhuk.com

KAMERA ARKASI

Çözüm 0: Ev Yapımı• Sayfa paradigması: tüm bileşenler bir arada

• Basit projeleri gerçekleştirmek çok kolay.

• Karmaşıklık arttıkça değişikliklerin maliyeti katlanarak artıyor.

• Zamanla eldeki projeye mahsus bir çerçeve haline gelir.

Page 13: Django ile Ağrısız Teşhis ve Tedavi

Nisan 2010

Atamert Ölçgen http://www.muhuk.com

KAMERA ARKASI

Çözüm 1: Çerçeveler

http://commons.wikimedia.org/wiki/File:Formal_01.jpg

Page 14: Django ile Ağrısız Teşhis ve Tedavi

Nisan 2010

Atamert Ölçgen http://www.muhuk.com

KAMERA ARKASI

Çözüm 1: Çerçeveler• Organizasyon ihtiyacını karşılar.

Page 15: Django ile Ağrısız Teşhis ve Tedavi

Nisan 2010

Atamert Ölçgen http://www.muhuk.com

KAMERA ARKASI

Çözüm 1: Çerçeveler• Organizasyon ihtiyacını karşılar.

• Basit projeleri gerçekleştirmek biraz daha zor.

Page 16: Django ile Ağrısız Teşhis ve Tedavi

Nisan 2010

Atamert Ölçgen http://www.muhuk.com

KAMERA ARKASI

Çözüm 1: Çerçeveler• Organizasyon ihtiyacını karşılar.

• Basit projeleri gerçekleştirmek biraz daha zor.

• İyi tasarlanmış bir çerçeve, artan karmaşıklık ile değişiklik maliyetleri arasındaki dengeyi korur.

Page 17: Django ile Ağrısız Teşhis ve Tedavi

Nisan 2010

Atamert Ölçgen http://www.muhuk.com

KAMERA ARKASI

Çözüm 1: Çerçeveler• Organizasyon ihtiyacını karşılar.

• Basit projeleri gerçekleştirmek biraz daha zor.

• İyi tasarlanmış bir çerçeve, artan karmaşıklık ile değişiklik maliyetleri arasındaki dengeyi korur.

• Herkesin aynı yapıyı kullanmasıyla:

- Bilgi birikimi.

- Denenmiş, gözden geçirilmiş kaynak kodlar.

- Yüksek uyarlanabilirlik.

Page 18: Django ile Ağrısız Teşhis ve Tedavi

Nisan 2010

Atamert Ölçgen http://www.muhuk.com

KAMERA ARKASI

Çözüm 2: Anahtar Teslim

http://www.flickr.com/photos/heathbar/2389033978/

Page 19: Django ile Ağrısız Teşhis ve Tedavi

Nisan 2010

Atamert Ölçgen http://www.muhuk.com

KAMERA ARKASI

Çözüm 2: Anahtar Teslim

• En az çabayla, en kısa zamanda, en gelişmiş çözüm.

Page 20: Django ile Ağrısız Teşhis ve Tedavi

Nisan 2010

Atamert Ölçgen http://www.muhuk.com

KAMERA ARKASI

Çözüm 2: Anahtar Teslim

• En az çabayla, en kısa zamanda, en gelişmiş çözüm.

• Sunulan seçenekler dışında geliştirmek ve değiştirmek zor.

Page 21: Django ile Ağrısız Teşhis ve Tedavi

Nisan 2010

Atamert Ölçgen http://www.muhuk.com

Page 22: Django ile Ağrısız Teşhis ve Tedavi

Nisan 2010

Atamert Ölçgen http://www.muhuk.com

DJANGO YERLEŞİM PLANI

URLTANIMLARI

VIEW

Page 23: Django ile Ağrısız Teşhis ve Tedavi

Nisan 2010

Atamert Ölçgen http://www.muhuk.com

DJANGO YERLEŞİM PLANI

URLTANIMLARI

VIEW

ORM ÖNBELLEK OTURUM

Page 24: Django ile Ağrısız Teşhis ve Tedavi

Nisan 2010

Atamert Ölçgen http://www.muhuk.com

DJANGO YERLEŞİM PLANI

ŞABLON API

YÜKLEYİCİKOMUT

&FİLTRELER

URLTANIMLARI

VIEW

ORM ÖNBELLEK OTURUM

Page 25: Django ile Ağrısız Teşhis ve Tedavi

Nisan 2010

Atamert Ölçgen http://www.muhuk.com

DJANGO YERLEŞİM PLANI

ŞABLON API

YÜKLEYİCİKOMUT

&FİLTRELER

URLTANIMLARI

VIEW

ORM ÖNBELLEK OTURUM

Page 26: Django ile Ağrısız Teşhis ve Tedavi

Nisan 2010

Atamert Ölçgen http://www.muhuk.com

Page 27: Django ile Ağrısız Teşhis ve Tedavi

Nisan 2010

Atamert Ölçgen http://www.muhuk.com

ŞABLON ALTSİSTEMİ

Şablonlar Hakkında

• Düz metin dosyaları

• {{ değişken }}

• {% komut parametre %}

• {{ değişken|filtre }} {% komut parametre|filtre %}

Page 28: Django ile Ağrısız Teşhis ve Tedavi

Nisan 2010

Atamert Ölçgen http://www.muhuk.com

ŞABLON ALTSİSTEMİ

Şablonların İşlenmesi

KOMUT&

FİLTRELER

CONTEXT

Ekleme: {% include %}

Kalıtım: {% extends %} Yükleme: {% load %}

Page 29: Django ile Ağrısız Teşhis ve Tedavi

Nisan 2010

Atamert Ölçgen http://www.muhuk.com

ŞABLON ALTSİSTEMİ

Tema Oluşturma

base.htmlTemel HTML yapısı

Page 30: Django ile Ağrısız Teşhis ve Tedavi

Nisan 2010

Atamert Ölçgen http://www.muhuk.com

ŞABLON ALTSİSTEMİ

Tema Oluşturma

base.htmlTemel HTML yapısı

myproject/base.htmlTema

Page 31: Django ile Ağrısız Teşhis ve Tedavi

Nisan 2010

Atamert Ölçgen http://www.muhuk.com

ŞABLON ALTSİSTEMİ

Tema Oluşturma

base.htmlTemel HTML yapısı

myproject/base.htmlTema

myproject/homepage.html

Page 32: Django ile Ağrısız Teşhis ve Tedavi

Nisan 2010

Atamert Ölçgen http://www.muhuk.com

ŞABLON ALTSİSTEMİ

Bloklar{% block header %} {% block title %}urlshortenersareevil{% endblock %} <img src="/media/img/menu.png" alt="menu" />{% endblock header %}

{% block content %}{% endblock content %}

{% block title %}Homepage |{{ block.super }}{% endblock %}

{% block content %} <h1>Homepage</h1> <p>Lorem ipsum...</p>{% endblock content %}

Page 33: Django ile Ağrısız Teşhis ve Tedavi

Nisan 2010

Atamert Ölçgen http://www.muhuk.com

ŞABLON ALTSİSTEMİ

Döngüler & Ekleme

{% for post in posts %} {% include "blog/_post.html" %}{% endfor %}

Page 34: Django ile Ağrısız Teşhis ve Tedavi

Nisan 2010

Atamert Ölçgen http://www.muhuk.com

ŞABLON ALTSİSTEMİ

Şablon Editörleri için Dökümantasyon

Page 35: Django ile Ağrısız Teşhis ve Tedavi

Nisan 2010

Atamert Ölçgen http://www.muhuk.com

Page 36: Django ile Ağrısız Teşhis ve Tedavi

Nisan 2010

Atamert Ölçgen http://www.muhuk.com

YÜKSEK UYARLANABİLİRLİK

Teorem

akılcı varsayılan değerler

çok entegrasyon noktası

düşük maliyetli değişiklikler

+

Page 37: Django ile Ağrısız Teşhis ve Tedavi

Nisan 2010

Atamert Ölçgen http://www.muhuk.com

YÜKSEK UYARLANABİLİRLİK

Örnek:from django.conf.urls.defaults import *from models import Post

urlpatterns = patterns('', ('^$', 'django.views.generic.list_detail.object_list', {'queryset': Post.objects.all()}, 'post_list'), ('^(?P<object_id>\d+)/$', 'django.views.generic.list_detail.object_detail', {'queryset': Post.objects.all()}, 'post_detail'), ('^create/$', 'django.views.generic.create_update.create_object', {'model': Post}, 'post_create'), ('^(?P<object_id>\d+)/edit/$', 'django.views.generic.create_update.update_object', {'model': Post}, 'post_edit'),)

Page 38: Django ile Ağrısız Teşhis ve Tedavi

Nisan 2010

Atamert Ölçgen http://www.muhuk.com

YÜKSEK UYARLANABİLİRLİK

Örnek:from django.conf.urls.defaults import *from models import Post

urlpatterns = patterns('django.views.generic', ('^$', 'list_detail.object_list', {'queryset': Post.objects.all()}, 'post_list'), ('^(?P<object_id>\d+)/$', 'list_detail.object_detail', {'queryset': Post.objects.all()}, 'post_detail'), ('^create/$', 'create_update.create_object', {'model': Post}, 'post_create'), ('^(?P<object_id>\d+)/edit/$', 'create_update.update_object', {'model': Post}, 'post_edit'),)

Page 39: Django ile Ağrısız Teşhis ve Tedavi

Nisan 2010

Atamert Ölçgen http://www.muhuk.com

YÜKSEK UYARLANABİLİRLİK

Örnek:from django.conf.urls.defaults import *from models import Postfrom views import post_create, post_edit

urlpatterns = patterns('django.views.generic', ('^$', 'list_detail.object_list', {'queryset': Post.objects.all()}, 'post_list'), ('^(?P<object_id>\d+)/$', 'list_detail.object_detail', {'queryset': Post.objects.all()}, 'post_detail'), ('^create/$', post_create, {}, 'post_create'), ('^(?P<object_id>\d+)/edit/$', post_edit, {}, 'post_edit'),)

Page 40: Django ile Ağrısız Teşhis ve Tedavi

Nisan 2010

Atamert Ölçgen http://www.muhuk.com

YÜKSEK UYARLANABİLİRLİK

Örnek:from django.conf.urls.defaults import *from models import Post

urlpatterns = patterns('django.views.generic', ('^$', 'list_detail.object_list', {'queryset': Post.objects.all()}, 'post_list'), ('^(?P<object_id>\d+)/$', 'list_detail.object_detail', {'queryset': Post.objects.all()}, 'post_detail'),)

urlpatterns += patterns('blog.views' ('^create/$', 'post_create', {}, 'post_create'), ('^(?P<object_id>\d+)/edit/$', 'post_edit', {}, 'post_edit'),)

Page 41: Django ile Ağrısız Teşhis ve Tedavi

Nisan 2010

Atamert Ölçgen http://www.muhuk.com

Page 42: Django ile Ağrısız Teşhis ve Tedavi

Nisan 2010

Atamert Ölçgen http://www.muhuk.com

YENİDEN KULLANILABİLİR BİLEŞENLER

Django & UNIX

django_apps = unix_philosophy(python, web_programming)

Page 43: Django ile Ağrısız Teşhis ve Tedavi

Nisan 2010

Atamert Ölçgen http://www.muhuk.com

YENİDEN KULLANILABİLİR BİLEŞENLER

Django Yerleşim Planı II

PROJEYE MAHSUS B.

AYA

RLA

R3. PARTİ BİLEŞENLER

CONTRIB BİLEŞENLERİ

DJANGO

Page 44: Django ile Ağrısız Teşhis ve Tedavi

Nisan 2010

Atamert Ölçgen http://www.muhuk.com

YENİDEN KULLANILABİLİR BİLEŞENLER

Bileşen (App) Nedir?

• Python pakedi

• Django'ya özel yapı

- üzerinde bir dizin içindeos.path

- modülü__init__.py

- models.py

Page 45: Django ile Ağrısız Teşhis ve Tedavi

Nisan 2010

Atamert Ölçgen http://www.muhuk.com

YENİDEN KULLANILABİLİR BİLEŞENLER

İçerik

• Modeller

• Görünümler (view)

• URL tanımları

• Varsayılan şablonlar

• Şablon komut ve filtreleri

• Testler

• Sinyaller

• entegrasyonuadmin

Page 46: Django ile Ağrısız Teşhis ve Tedavi

Nisan 2010

Atamert Ölçgen http://www.muhuk.com

YENİDEN KULLANILABİLİR BİLEŞENLER

Kapsam

"Bir şey yap ve onu iyi yap."Doug McIlroy

App

Page 47: Django ile Ağrısız Teşhis ve Tedavi

Nisan 2010

Atamert Ölçgen http://www.muhuk.com

YENİDEN KULLANILABİLİR BİLEŞENLER

Kapsam

Atamert Ölçgen

müşterek çalışma & esneklik

Page 48: Django ile Ağrısız Teşhis ve Tedavi

Nisan 2010

Atamert Ölçgen http://www.muhuk.com

Page 49: Django ile Ağrısız Teşhis ve Tedavi

Nisan 2010

Atamert Ölçgen http://www.muhuk.com

SONUÇ

Django Evreni

• www.djangoproject.com

• irc://irc.freenode.net/django

[email protected]

• http://stackoverflow.com/questions/tagged/django

Page 50: Django ile Ağrısız Teşhis ve Tedavi

Nisan 2010

Atamert Ölçgen http://www.muhuk.com

SONUÇ

Yapılacaklar:

• Django indirilecek, kurulup kurcalanacak

• App'ler geliştirilecek, özgürleştirilecek

• Katkıda bulunulacak

Page 51: Django ile Ağrısız Teşhis ve Tedavi

Nisan 2010

Atamert Ölçgen http://www.muhuk.com

Teşekkür ederim.