SlideShare une entreprise Scribd logo
1  sur  51
Télécharger pour lire hors ligne
Nisan 2010




Atamert Ölçgen http://www.muhuk.com
GİRİŞ                                                           Nisan 2010




                           http://github.com/muhuk/urlshortenersareevil




Atamert Ölçgen http://www.muhuk.com
GİRİŞ                                                      Nisan 2010




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




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




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




               "Bize bir web sitesi lazım."




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




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




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




               "Bize bir web sitesi lazım."
                        • HTTP
                        • Metin işleme




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




               "Bize bir web sitesi lazım."
                        • HTTP
                        • Metin işleme
                        • Durumsuz bağlantı & kalıcılık
                               - Çerezler
                               - Oturumlar
                               - Veritabanları




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




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




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




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




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




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




               Çö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.




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




               Çö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.




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




               Çözüm 1: Çerçeveler




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




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




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




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




               Çözüm 1: Çerçeveler
                        • Organizasyon ihtiyacını karşılar.
                        • Basit projeleri gerçekleştirmek biraz daha zor.




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




               Çö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.




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




               Çö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.




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




               Çözüm 2: Anahtar Teslim




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




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




               Çözüm 2: Anahtar Teslim
                        • En az çabayla,
                          en kısa zamanda,
                          en gelişmiş çözüm.




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




               Çö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.




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




Atamert Ölçgen http://www.muhuk.com
DJANGO YERLEŞİM PLANI              Nisan 2010




                       URL
                                      VIEW
                    TANIMLARI




Atamert Ölçgen http://www.muhuk.com
DJANGO YERLEŞİM PLANI                                  Nisan 2010




                          ORM         ÖNBELLEK          OTURUM




                       URL
                                                 VIEW
                    TANIMLARI




Atamert Ölçgen http://www.muhuk.com
DJANGO YERLEŞİM PLANI                                      Nisan 2010




                          ORM         ÖNBELLEK              OTURUM




                       URL
                                                   VIEW
                    TANIMLARI




                                             ŞABLON API

                                                       KOMUT
                                       YÜKLEYİCİ          &
                                                      FİLTRELER




Atamert Ölçgen http://www.muhuk.com
DJANGO YERLEŞİM PLANI                                      Nisan 2010




                          ORM         ÖNBELLEK              OTURUM




                       URL
                                                   VIEW
                    TANIMLARI




                                             ŞABLON API

                                                       KOMUT
                                       YÜKLEYİCİ          &
                                                      FİLTRELER




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




Atamert Ölçgen http://www.muhuk.com
ŞABLON ALTSİSTEMİ                              Nisan 2010




               Şablonlar Hakkında
                        • Düz metin dosyaları

                        • {% komut parametre %}

                        • {{ değişken }}

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




Atamert Ölçgen http://www.muhuk.com
ŞABLON ALTSİSTEMİ                                             Nisan 2010




               Şablonların İşlenmesi

                                       CONTEXT          KOMUT
                                                           &
                                                       FİLTRELER



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




                                             Ekleme: {% include %}




Atamert Ölçgen http://www.muhuk.com
ŞABLON ALTSİSTEMİ                               Nisan 2010




               Tema Oluşturma
                                      Temel HTML yapısı
                          base.html




Atamert Ölçgen http://www.muhuk.com
ŞABLON ALTSİSTEMİ                                Nisan 2010




               Tema Oluşturma
                                       Temel HTML yapısı
                          base.html



                                                   Tema
                          myproject/base.html




Atamert Ölçgen http://www.muhuk.com
ŞABLON ALTSİSTEMİ                                Nisan 2010




               Tema Oluşturma
                                       Temel HTML yapısı
                          base.html



                                                   Tema
                          myproject/base.html



                          myproject/homepage.html




Atamert Ölçgen http://www.muhuk.com
ŞABLON ALTSİSTEMİ                                                           Nisan 2010




               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 %}




Atamert Ölçgen http://www.muhuk.com
ŞABLON ALTSİSTEMİ                                     Nisan 2010




               Döngüler & Ekleme


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




Atamert Ölçgen http://www.muhuk.com
ŞABLON ALTSİSTEMİ                      Nisan 2010




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




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




Atamert Ölçgen http://www.muhuk.com
YÜKSEK UYARLANABİLİRLİK                                      Nisan 2010




               Teorem

                                          akılcı varsayılan değerler

                                          çok entegrasyon noktası
                                      +
                                      düşük maliyetli değişiklikler




Atamert Ölçgen http://www.muhuk.com
YÜKSEK UYARLANABİLİRLİK                                                      Nisan 2010




               Ö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'),
                         )




Atamert Ölçgen http://www.muhuk.com
YÜKSEK UYARLANABİLİRLİK                                         Nisan 2010




               Ö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'),
                         )




Atamert Ölçgen http://www.muhuk.com
YÜKSEK UYARLANABİLİRLİK                                         Nisan 2010




               Örnek:
                         from django.conf.urls.defaults import *
                         from models import Post
                         from 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'),
                         )




Atamert Ölçgen http://www.muhuk.com
YÜKSEK UYARLANABİLİRLİK                                         Nisan 2010




               Ö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'),
                         )




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




Atamert Ölçgen http://www.muhuk.com
YENİDEN KULLANILABİLİR BİLEŞENLER                              Nisan 2010




               Django & UNIX


                        django_apps = unix_philosophy(python,
                                                      web_programming)




Atamert Ölçgen http://www.muhuk.com
YENİDEN KULLANILABİLİR BİLEŞENLER                           Nisan 2010




               Django Yerleşim Planı II

                                                PROJEYE MAHSUS B.



                                      AYARLAR
                                                3. PARTİ BİLEŞENLER


                                           CONTRIB BİLEŞENLERİ


                                                 DJANGO




Atamert Ölçgen http://www.muhuk.com
YENİDEN KULLANILABİLİR BİLEŞENLER                          Nisan 2010




               Bileşen (App) Nedir?
                        • Python pakedi

                               - os.path üzerinde bir dizin içinde

                               - __init__.py modülü

                        • Django'ya özel yapı

                               - models.py




Atamert Ölçgen http://www.muhuk.com
YENİDEN KULLANILABİLİR BİLEŞENLER            Nisan 2010




               İçerik
                        • Modeller
                        • Görünümler (view)
                        • URL tanımları
                        • Varsayılan şablonlar
                        • Şablon komut ve filtreleri
                        • admin entegrasyonu
                        • Testler
                        • Sinyaller




Atamert Ölçgen http://www.muhuk.com
YENİDEN KULLANILABİLİR BİLEŞENLER               Nisan 2010




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




                                        App



Atamert Ölçgen http://www.muhuk.com
YENİDEN KULLANILABİLİR BİLEŞENLER             Nisan 2010




               Kapsam

                        müşterek çalışma & esneklik




                                       Atamert Ölçgen




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




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




               Django Evreni
                        • www.djangoproject.com

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

                        • django-users@googlegroups.com

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




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




               Yapılacaklar:
                        • Django indirilecek, kurulup kurcalanacak


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


                        • Katkıda bulunulacak




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




                                      Teşekkür ederim.




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

Contenu connexe

En vedette

Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...DevGAMM Conference
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationErica Santiago
 
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellGood Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellSaba Software
 
Introduction to C Programming Language
Introduction to C Programming LanguageIntroduction to C Programming Language
Introduction to C Programming LanguageSimplilearn
 
The Pixar Way: 37 Quotes on Developing and Maintaining a Creative Company (fr...
The Pixar Way: 37 Quotes on Developing and Maintaining a Creative Company (fr...The Pixar Way: 37 Quotes on Developing and Maintaining a Creative Company (fr...
The Pixar Way: 37 Quotes on Developing and Maintaining a Creative Company (fr...Palo Alto Software
 

En vedette (20)

Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy Presentation
 
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellGood Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
 
Introduction to C Programming Language
Introduction to C Programming LanguageIntroduction to C Programming Language
Introduction to C Programming Language
 
The Pixar Way: 37 Quotes on Developing and Maintaining a Creative Company (fr...
The Pixar Way: 37 Quotes on Developing and Maintaining a Creative Company (fr...The Pixar Way: 37 Quotes on Developing and Maintaining a Creative Company (fr...
The Pixar Way: 37 Quotes on Developing and Maintaining a Creative Company (fr...
 

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

  • 1. Nisan 2010 Atamert Ölçgen http://www.muhuk.com
  • 2. GİRİŞ Nisan 2010 http://github.com/muhuk/urlshortenersareevil Atamert Ölçgen http://www.muhuk.com
  • 3. GİRİŞ Nisan 2010 http://www.youtube.com/watch?v=PLUS00QrYWw Atamert Ölçgen http://www.muhuk.com
  • 4. Nisan 2010 Atamert Ölçgen http://www.muhuk.com
  • 5. KAMERA ARKASI Nisan 2010 "Bize bir web sitesi lazım." Atamert Ölçgen http://www.muhuk.com
  • 6. KAMERA ARKASI Nisan 2010 "Bize bir web sitesi lazım." • HTTP Atamert Ölçgen http://www.muhuk.com
  • 7. KAMERA ARKASI Nisan 2010 "Bize bir web sitesi lazım." • HTTP • Metin işleme Atamert Ölçgen http://www.muhuk.com
  • 8. KAMERA ARKASI Nisan 2010 "Bize bir web sitesi lazım." • HTTP • Metin işleme • Durumsuz bağlantı & kalıcılık - Çerezler - Oturumlar - Veritabanları Atamert Ölçgen http://www.muhuk.com
  • 9. KAMERA ARKASI Nisan 2010 Çözüm 0: Ev Yapımı http://commons.wikimedia.org/wiki/File:Alphabet_soup.jpg Atamert Ölçgen http://www.muhuk.com
  • 10. KAMERA ARKASI Nisan 2010 Çözüm 0: Ev Yapımı • Sayfa paradigması: tüm bileşenler bir arada Atamert Ölçgen http://www.muhuk.com
  • 11. KAMERA ARKASI Nisan 2010 Çö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. Atamert Ölçgen http://www.muhuk.com
  • 12. KAMERA ARKASI Nisan 2010 Çö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. Atamert Ölçgen http://www.muhuk.com
  • 13. KAMERA ARKASI Nisan 2010 Çözüm 1: Çerçeveler http://commons.wikimedia.org/wiki/File:Formal_01.jpg Atamert Ölçgen http://www.muhuk.com
  • 14. KAMERA ARKASI Nisan 2010 Çözüm 1: Çerçeveler • Organizasyon ihtiyacını karşılar. Atamert Ölçgen http://www.muhuk.com
  • 15. KAMERA ARKASI Nisan 2010 Çözüm 1: Çerçeveler • Organizasyon ihtiyacını karşılar. • Basit projeleri gerçekleştirmek biraz daha zor. Atamert Ölçgen http://www.muhuk.com
  • 16. KAMERA ARKASI Nisan 2010 Çö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. Atamert Ölçgen http://www.muhuk.com
  • 17. KAMERA ARKASI Nisan 2010 Çö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. Atamert Ölçgen http://www.muhuk.com
  • 18. KAMERA ARKASI Nisan 2010 Çözüm 2: Anahtar Teslim http://www.flickr.com/photos/heathbar/2389033978/ Atamert Ölçgen http://www.muhuk.com
  • 19. KAMERA ARKASI Nisan 2010 Çözüm 2: Anahtar Teslim • En az çabayla, en kısa zamanda, en gelişmiş çözüm. Atamert Ölçgen http://www.muhuk.com
  • 20. KAMERA ARKASI Nisan 2010 Çö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. Atamert Ölçgen http://www.muhuk.com
  • 21. Nisan 2010 Atamert Ölçgen http://www.muhuk.com
  • 22. DJANGO YERLEŞİM PLANI Nisan 2010 URL VIEW TANIMLARI Atamert Ölçgen http://www.muhuk.com
  • 23. DJANGO YERLEŞİM PLANI Nisan 2010 ORM ÖNBELLEK OTURUM URL VIEW TANIMLARI Atamert Ölçgen http://www.muhuk.com
  • 24. DJANGO YERLEŞİM PLANI Nisan 2010 ORM ÖNBELLEK OTURUM URL VIEW TANIMLARI ŞABLON API KOMUT YÜKLEYİCİ & FİLTRELER Atamert Ölçgen http://www.muhuk.com
  • 25. DJANGO YERLEŞİM PLANI Nisan 2010 ORM ÖNBELLEK OTURUM URL VIEW TANIMLARI ŞABLON API KOMUT YÜKLEYİCİ & FİLTRELER Atamert Ölçgen http://www.muhuk.com
  • 26. Nisan 2010 Atamert Ölçgen http://www.muhuk.com
  • 27. ŞABLON ALTSİSTEMİ Nisan 2010 Şablonlar Hakkında • Düz metin dosyaları • {% komut parametre %} • {{ değişken }} • {{ değişken|filtre }} {% komut parametre|filtre %} Atamert Ölçgen http://www.muhuk.com
  • 28. ŞABLON ALTSİSTEMİ Nisan 2010 Şablonların İşlenmesi CONTEXT KOMUT & FİLTRELER Kalıtım: {% extends %} Yükleme: {% load %} Ekleme: {% include %} Atamert Ölçgen http://www.muhuk.com
  • 29. ŞABLON ALTSİSTEMİ Nisan 2010 Tema Oluşturma Temel HTML yapısı base.html Atamert Ölçgen http://www.muhuk.com
  • 30. ŞABLON ALTSİSTEMİ Nisan 2010 Tema Oluşturma Temel HTML yapısı base.html Tema myproject/base.html Atamert Ölçgen http://www.muhuk.com
  • 31. ŞABLON ALTSİSTEMİ Nisan 2010 Tema Oluşturma Temel HTML yapısı base.html Tema myproject/base.html myproject/homepage.html Atamert Ölçgen http://www.muhuk.com
  • 32. ŞABLON ALTSİSTEMİ Nisan 2010 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 %} Atamert Ölçgen http://www.muhuk.com
  • 33. ŞABLON ALTSİSTEMİ Nisan 2010 Döngüler & Ekleme {% for post in posts %} {% include "blog/_post.html" %} {% endfor %} Atamert Ölçgen http://www.muhuk.com
  • 34. ŞABLON ALTSİSTEMİ Nisan 2010 Şablon Editörleri için Dökümantasyon Atamert Ölçgen http://www.muhuk.com
  • 35. Nisan 2010 Atamert Ölçgen http://www.muhuk.com
  • 36. YÜKSEK UYARLANABİLİRLİK Nisan 2010 Teorem akılcı varsayılan değerler çok entegrasyon noktası + düşük maliyetli değişiklikler Atamert Ölçgen http://www.muhuk.com
  • 37. YÜKSEK UYARLANABİLİRLİK Nisan 2010 Ö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'), ) Atamert Ölçgen http://www.muhuk.com
  • 38. YÜKSEK UYARLANABİLİRLİK Nisan 2010 Ö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'), ) Atamert Ölçgen http://www.muhuk.com
  • 39. YÜKSEK UYARLANABİLİRLİK Nisan 2010 Örnek: from django.conf.urls.defaults import * from models import Post from 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'), ) Atamert Ölçgen http://www.muhuk.com
  • 40. YÜKSEK UYARLANABİLİRLİK Nisan 2010 Ö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'), ) Atamert Ölçgen http://www.muhuk.com
  • 41. Nisan 2010 Atamert Ölçgen http://www.muhuk.com
  • 42. YENİDEN KULLANILABİLİR BİLEŞENLER Nisan 2010 Django & UNIX django_apps = unix_philosophy(python, web_programming) Atamert Ölçgen http://www.muhuk.com
  • 43. YENİDEN KULLANILABİLİR BİLEŞENLER Nisan 2010 Django Yerleşim Planı II PROJEYE MAHSUS B. AYARLAR 3. PARTİ BİLEŞENLER CONTRIB BİLEŞENLERİ DJANGO Atamert Ölçgen http://www.muhuk.com
  • 44. YENİDEN KULLANILABİLİR BİLEŞENLER Nisan 2010 Bileşen (App) Nedir? • Python pakedi - os.path üzerinde bir dizin içinde - __init__.py modülü • Django'ya özel yapı - models.py Atamert Ölçgen http://www.muhuk.com
  • 45. YENİDEN KULLANILABİLİR BİLEŞENLER Nisan 2010 İçerik • Modeller • Görünümler (view) • URL tanımları • Varsayılan şablonlar • Şablon komut ve filtreleri • admin entegrasyonu • Testler • Sinyaller Atamert Ölçgen http://www.muhuk.com
  • 46. YENİDEN KULLANILABİLİR BİLEŞENLER Nisan 2010 Kapsam "Bir şey yap ve onu iyi yap." Doug McIlroy App Atamert Ölçgen http://www.muhuk.com
  • 47. YENİDEN KULLANILABİLİR BİLEŞENLER Nisan 2010 Kapsam müşterek çalışma & esneklik Atamert Ölçgen Atamert Ölçgen http://www.muhuk.com
  • 48. Nisan 2010 Atamert Ölçgen http://www.muhuk.com
  • 49. SONUÇ Nisan 2010 Django Evreni • www.djangoproject.com • irc://irc.freenode.net/django • django-users@googlegroups.com • http://stackoverflow.com/questions/tagged/django Atamert Ölçgen http://www.muhuk.com
  • 50. SONUÇ Nisan 2010 Yapılacaklar: • Django indirilecek, kurulup kurcalanacak • App'ler geliştirilecek, özgürleştirilecek • Katkıda bulunulacak Atamert Ölçgen http://www.muhuk.com
  • 51. Nisan 2010 Teşekkür ederim. Atamert Ölçgen http://www.muhuk.com