21
Django "The web framework for perfectionists with deadlines" http://djangoproject.org http://django.org.tr

Django Introduction

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Django Introduction

Django"The web framework for

perfectionists with deadlines"

http://djangoproject.orghttp://django.org.tr

Page 2: Django Introduction

Fatih ERİKLİ

http://hipo.bizhttp://fatiherikli.comhttp://github.com/fatiherikli

Django Developer @hipo

Page 3: Django Introduction

Django Nedir?

Python üzerinde geliştirilen mümkün olduğunca az kod yazarak web uygulamaları geliştirmenizi sağlayan web framework'tür.

Page 4: Django Introduction

Neden Django?

● Python üzerinde çalışması

● DRY (Kendini tekrar etme!)

● Pluggable (tak çalıştır) uygulamalar

● Test edilebilirlik

● Çok iyi bir topluluk

Page 5: Django Introduction

Avantajları

● Built-in admin uygulaması

● ORM

● GEODjango

● Internationalization (i18n)

● ...

Page 6: Django Introduction

Kurulum

$ pip install django

Page 7: Django Introduction

Proje oluşturmak$ django-admin.py startproject helloworld

helloworld|-- helloworld| |-- __init__.py| |-- settings.py| |-- urls.py| `-- wsgi.py`-- manage.py

Page 8: Django Introduction

settings.py

Projenin ayarları bu dosyada yapılır.

● Veritabanı ayarları● Email ayarları● Kullanılacak uygulamalar

Page 9: Django Introduction

urls.py

Sitenin URL'leri bu dosyada belirlenir.

Page 10: Django Introduction

manage.py

Proje bu script üzerinden yönetilir.

Page 11: Django Introduction

Uygulamalar

Bir django projesi parça parça

uygulamalardan oluşur.

Page 12: Django Introduction

Uygulamalar

Bu uygulamalar genelde bir kısmı sizin

yazdıgınız, bir kısmını varsayılan olarak

gelenler, bir kısmı ise 3. parti

uygulamalardır.

Page 13: Django Introduction

Uygulama oluşturmak

python manage.py startapp blog

blog|-- __init__.py|-- models.py|-- tests.py`-- views.py

Page 14: Django Introduction

Uygulamanın yapısı

Bir uygulama

● Model

● View

● Template

öğelerinden oluşur.

Page 15: Django Introduction

Model

Uygulamanın veritabanı ile ilişkisi bu katmanda belirlenir. Her bir model veritabanındaki bir tablo ile eşleşir.

Page 16: Django Introduction

from django.db import models

class Category(models.Model):

"""

Holds category data

"""

name = models.CharField(max_length=255)

def __unicode__(self):

return self.name

class 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

Page 17: Django Introduction

View

View'lar kullanıcının karşılandığı ve ona yanıt verildiği katmandır.

Page 18: Django Introduction

def show_post(request, post_id):

post = get_object_or_404(Post, id=post_id)

return render_to_response("post_detail.html", {

"post": post

})

class PostDetailView(DetailView):

model = Post

pk_url_kwarg = "post_id"

Function based view

Class based view

Page 19: Django Introduction

Template

Kullanıcıya verilecek olan yanıtın işlendiği bölümdür. Template'lar HTML sonuçlar üretmeyi kolaylaştırırlar.

Front-end developer'lar bunu çok sever.

Page 20: Django Introduction

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

HTML Template

Page 21: Django Introduction

Teşekkürler