SlideShare a Scribd company logo
Django
              "The web framework for
            perfectionists with deadlines"



http://djangoproject.org
http://django.org.tr
Fatih ERİKLİ
Django Developer @hipo




http://hipo.biz
http://fatiherikli.com
http://github.com/fatiherikli
Django Nedir?
Python üzerinde geliştirilen mümkün
olduğunca az kod yazarak web
uygulamaları geliştirmenizi sağlayan web
framework'tür.
Neden Django?
● Python üzerinde çalışması
● DRY (Kendini tekrar etme!)
● Pluggable (tak çalıştır) uygulamalar
● Test edilebilirlik
● Çok iyi bir topluluk
Avantajları
● Built-in admin uygulaması
● ORM
● GEODjango
● Internationalization (i18n)
● ...
Kurulum

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

helloworld
|-- helloworld
| |-- __init__.py
| |-- settings.py
| |-- urls.py
| `-- wsgi.py
`-- manage.py
settings.py
Projenin ayarları bu dosyada yapılır.

● Veritabanı ayarları
● Email ayarları
● Kullanılacak uygulamalar
urls.py
Sitenin URL'leri bu dosyada belirlenir.
manage.py
Proje bu script üzerinden yönetilir.
Uygulamalar

Bir django projesi parça parça
uygulamalardan oluşur.
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.
Uygulama oluşturmak
python manage.py startapp blog

blog
|-- __init__.py
|-- models.py
|-- tests.py
`-- views.py
Uygulamanın yapısı
Bir uygulama
● Model
● View
● Template
öğelerinden oluşur.
Model
Uygulamanın veritabanı ile ilişkisi bu
katmanda belirlenir. Her bir model
veritabanındaki bir tablo ile eşleşir.
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
View
View'lar kullanıcının karşılandığı ve ona
yanıt verildiği katmandır.
Function based view
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 based view
class PostDetailView(DetailView):
    model = Post
    pk_url_kwarg = "post_id"
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.
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>
Teşekkürler

More Related Content

PDF
Django ORM Optimizasyonu
PPTX
progressokulu.com Advanced Business Language Slide 10
PPTX
Windows Server 2012 Server Core Active Directory
PDF
PostgreSQL'i öğrenmek ve yönetmek
PDF
PostgreSQL DBA Neler Yapar?
PDF
PostgreSQL Hem Güçlü Hem Güzel!
ODP
Puppet Sertifika Yönetimi
PPTX
BTRİSK Web Uygulama Güvenliği Denetimi Eğitimi
Django ORM Optimizasyonu
progressokulu.com Advanced Business Language Slide 10
Windows Server 2012 Server Core Active Directory
PostgreSQL'i öğrenmek ve yönetmek
PostgreSQL DBA Neler Yapar?
PostgreSQL Hem Güçlü Hem Güzel!
Puppet Sertifika Yönetimi
BTRİSK Web Uygulama Güvenliği Denetimi Eğitimi

Viewers also liked (11)

PDF
Arguman
PDF
Agent-based Models
PDF
Celery
PDF
Klassify: Text Classification with Redis
PDF
Lettuce ile Behaviour Driven Development
PDF
Argüman Analizi Platformu
PDF
Graph Databases & NEO4J
PDF
PDF
Karmaşık Ağlar ve NetworkX
PDF
Processing - Programcılar için eskiz defteri
KEY
Big Data in Real-Time at Twitter
Arguman
Agent-based Models
Celery
Klassify: Text Classification with Redis
Lettuce ile Behaviour Driven Development
Argüman Analizi Platformu
Graph Databases & NEO4J
Karmaşık Ağlar ve NetworkX
Processing - Programcılar için eskiz defteri
Big Data in Real-Time at Twitter
Ad

Similar to Django Introduction (20)

PPTX
Django nedir
PDF
Radore Workshop: Wordpress Nereye Koşuyor?
PDF
F5 dergisi
PPT
Java EE Struts
ODP
Dojotoolkit Nedir?
PDF
Java 9 Project Jigsaw
PPTX
CSharp Programlama Dili ve Net Framework
PDF
Yazılım Yetekenleri İle Teknik SEO Dünyasında Harikalar Yaratın
PPT
Extjs 4 education
PPTX
progressokulu.com Advanced Business Language Slide 1
PPTX
Symfony2 ve Doctrine ile PostgreSQL'i Kullanarak Performanslı Mimari Oluşturma
PDF
Temel HTML Etiketleri - Text, Image, Link, List, Image
PPT
Web İçin Teknoloji Geliştirmek
PDF
PPSX
Özgür Web Teknolojileri Günleri 2010 - İbrahim Hızlıoğlu // CodeIgniter Sunumu
PDF
Introduction to Android Programming
PPTX
Templates
ODP
Javascript Performance Optimisation
PPTX
Visual Studio Developer Tools
PDF
Joomla kursu-antalya
Django nedir
Radore Workshop: Wordpress Nereye Koşuyor?
F5 dergisi
Java EE Struts
Dojotoolkit Nedir?
Java 9 Project Jigsaw
CSharp Programlama Dili ve Net Framework
Yazılım Yetekenleri İle Teknik SEO Dünyasında Harikalar Yaratın
Extjs 4 education
progressokulu.com Advanced Business Language Slide 1
Symfony2 ve Doctrine ile PostgreSQL'i Kullanarak Performanslı Mimari Oluşturma
Temel HTML Etiketleri - Text, Image, Link, List, Image
Web İçin Teknoloji Geliştirmek
Özgür Web Teknolojileri Günleri 2010 - İbrahim Hızlıoğlu // CodeIgniter Sunumu
Introduction to Android Programming
Templates
Javascript Performance Optimisation
Visual Studio Developer Tools
Joomla kursu-antalya
Ad

Django Introduction