Django Introduction

3,696 views

Published on

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,696
On SlideShare
0
From Embeds
0
Number of Embeds
2,624
Actions
Shares
0
Downloads
16
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Django Introduction

  1. 1. Django "The web framework for perfectionists with deadlines"http://djangoproject.orghttp://django.org.tr
  2. 2. Fatih ERİKLİDjango Developer @hipohttp://hipo.bizhttp://fatiherikli.comhttp://github.com/fatiherikli
  3. 3. Django Nedir?Python üzerinde geliştirilen mümkünolduğunca az kod yazarak webuygulamaları geliştirmenizi sağlayan webframeworktür.
  4. 4. Neden Django?● Python üzerinde çalışması● DRY (Kendini tekrar etme!)● Pluggable (tak çalıştır) uygulamalar● Test edilebilirlik● Çok iyi bir topluluk
  5. 5. Avantajları● Built-in admin uygulaması● ORM● GEODjango● Internationalization (i18n)● ...
  6. 6. Kurulum$ pip install django
  7. 7. Proje oluşturmak$ django-admin.py startproject helloworldhelloworld|-- helloworld| |-- __init__.py| |-- settings.py| |-- urls.py| `-- wsgi.py`-- manage.py
  8. 8. settings.pyProjenin ayarları bu dosyada yapılır.● Veritabanı ayarları● Email ayarları● Kullanılacak uygulamalar
  9. 9. urls.pySitenin URLleri bu dosyada belirlenir.
  10. 10. manage.pyProje bu script üzerinden yönetilir.
  11. 11. UygulamalarBir django projesi parça parçauygulamalardan oluşur.
  12. 12. UygulamalarBu uygulamalar genelde bir kısmı sizinyazdıgınız, bir kısmını varsayılan olarakgelenler, bir kısmı ise 3. partiuygulamalardır.
  13. 13. Uygulama oluşturmakpython manage.py startapp blogblog|-- __init__.py|-- models.py|-- tests.py`-- views.py
  14. 14. Uygulamanın yapısıBir uygulama● Model● View● Templateöğelerinden oluşur.
  15. 15. ModelUygulamanın veritabanı ile ilişkisi bukatmanda belirlenir. Her bir modelveritabanındaki bir tablo ile eşleşir.
  16. 16. from django.db import modelsclass Category(models.Model): """ Holds category data """ name = models.CharField(max_length=255) def __unicode__(self): return self.nameclass Post(models.Model): """ Holds blog post data """ title = models.CharField(max_length=255) category = models.ManyToManyField(Category) description = models.TextField(blank=True, null=True) body = models.TextField() def __unicode__(self): return self.title
  17. 17. ViewViewlar kullanıcının karşılandığı ve onayanıt verildiği katmandır.
  18. 18. Function based viewdef show_post(request, post_id): post = get_object_or_404(Post, id=post_id) return render_to_response("post_detail.html", { "post": post })Class based viewclass PostDetailView(DetailView): model = Post pk_url_kwarg = "post_id"
  19. 19. TemplateKullanıcıya verilecek olan yanıtın işlendiğibölümdür. Templatelar HTML sonuçlarüretmeyi kolaylaştırırlar.Front-end developerlar bunu çok sever.
  20. 20. HTML Template<div class="post"> <h1>{{ post.title }}</h1> <p>{{ post.body }}</p> <ul> {% for category in post.categories.all %} <li>{{ category.name }}</li> {% endfor %} </ul></div>
  21. 21. Teşekkürler

×