Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Django Introduction

  • Login to see the comments

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

×