SlideShare uma empresa Scribd logo
1 de 21
Baixar para ler offline
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

Mais conteúdo relacionado

Destaque

Agent-based Models
Agent-based ModelsAgent-based Models
Agent-based ModelsFatih Erikli
 
Klassify: Text Classification with Redis
Klassify: Text Classification with RedisKlassify: Text Classification with Redis
Klassify: Text Classification with RedisFatih Erikli
 
Lettuce ile Behaviour Driven Development
Lettuce ile Behaviour Driven DevelopmentLettuce ile Behaviour Driven Development
Lettuce ile Behaviour Driven DevelopmentFatih Erikli
 
Argüman Analizi Platformu
Argüman Analizi PlatformuArgüman Analizi Platformu
Argüman Analizi PlatformuFatih Erikli
 
Graph Databases & NEO4J
Graph Databases & NEO4JGraph Databases & NEO4J
Graph Databases & NEO4JFatih Erikli
 
Karmaşık Ağlar ve NetworkX
Karmaşık Ağlar ve NetworkXKarmaşık Ağlar ve NetworkX
Karmaşık Ağlar ve NetworkXFatih Erikli
 
Processing - Programcılar için eskiz defteri
Processing - Programcılar için eskiz defteriProcessing - Programcılar için eskiz defteri
Processing - Programcılar için eskiz defteriFatih Erikli
 
Big Data in Real-Time at Twitter
Big Data in Real-Time at TwitterBig Data in Real-Time at Twitter
Big Data in Real-Time at Twitternkallen
 

Destaque (11)

Arguman
ArgumanArguman
Arguman
 
Agent-based Models
Agent-based ModelsAgent-based Models
Agent-based Models
 
Celery
CeleryCelery
Celery
 
Klassify: Text Classification with Redis
Klassify: Text Classification with RedisKlassify: Text Classification with Redis
Klassify: Text Classification with Redis
 
Lettuce ile Behaviour Driven Development
Lettuce ile Behaviour Driven DevelopmentLettuce ile Behaviour Driven Development
Lettuce ile Behaviour Driven Development
 
Argüman Analizi Platformu
Argüman Analizi PlatformuArgüman Analizi Platformu
Argüman Analizi Platformu
 
Graph Databases & NEO4J
Graph Databases & NEO4JGraph Databases & NEO4J
Graph Databases & NEO4J
 
NEO4J
NEO4JNEO4J
NEO4J
 
Karmaşık Ağlar ve NetworkX
Karmaşık Ağlar ve NetworkXKarmaşık Ağlar ve NetworkX
Karmaşık Ağlar ve NetworkX
 
Processing - Programcılar için eskiz defteri
Processing - Programcılar için eskiz defteriProcessing - Programcılar için eskiz defteri
Processing - Programcılar için eskiz defteri
 
Big Data in Real-Time at Twitter
Big Data in Real-Time at TwitterBig Data in Real-Time at Twitter
Big Data in Real-Time at Twitter
 

Semelhante a Django Introduction

F5 dergisi
F5 dergisiF5 dergisi
F5 dergisifatos11
 
Dojotoolkit Nedir?
Dojotoolkit Nedir?Dojotoolkit Nedir?
Dojotoolkit Nedir?zehra doruk
 
Java 9 Project Jigsaw
Java 9 Project JigsawJava 9 Project Jigsaw
Java 9 Project JigsawRahman USTA
 
Yazılım Yetekenleri İle Teknik SEO Dünyasında Harikalar Yaratın
Yazılım Yetekenleri İle Teknik SEO Dünyasında Harikalar YaratınYazılım Yetekenleri İle Teknik SEO Dünyasında Harikalar Yaratın
Yazılım Yetekenleri İle Teknik SEO Dünyasında Harikalar YaratınYusuf Ozbay
 
progressokulu.com Advanced Business Language Slide 1
progressokulu.com Advanced Business Language Slide 1progressokulu.com Advanced Business Language Slide 1
progressokulu.com Advanced Business Language Slide 1kaan verdioglu
 
Symfony2 ve Doctrine ile PostgreSQL'i Kullanarak Performanslı Mimari Oluşturma
Symfony2 ve Doctrine ile PostgreSQL'i Kullanarak Performanslı Mimari OluşturmaSymfony2 ve Doctrine ile PostgreSQL'i Kullanarak Performanslı Mimari Oluşturma
Symfony2 ve Doctrine ile PostgreSQL'i Kullanarak Performanslı Mimari OluşturmaHüseyin Mert
 
Temel HTML Etiketleri - Text, Image, Link, List, Image
Temel HTML Etiketleri - Text, Image, Link, List, ImageTemel HTML Etiketleri - Text, Image, Link, List, Image
Temel HTML Etiketleri - Text, Image, Link, List, Imagecmkandemir
 
Web İçin Teknoloji Geliştirmek
Web İçin Teknoloji GeliştirmekWeb İçin Teknoloji Geliştirmek
Web İçin Teknoloji GeliştirmekVolkan Özçelik
 
Özgür Web Teknolojileri Günleri 2010 - İbrahim Hızlıoğlu // CodeIgniter Sunumu
Özgür Web Teknolojileri Günleri 2010 - İbrahim Hızlıoğlu // CodeIgniter SunumuÖzgür Web Teknolojileri Günleri 2010 - İbrahim Hızlıoğlu // CodeIgniter Sunumu
Özgür Web Teknolojileri Günleri 2010 - İbrahim Hızlıoğlu // CodeIgniter Sunumuibrahimhizlioglu
 
Introduction to Android Programming
Introduction to Android ProgrammingIntroduction to Android Programming
Introduction to Android ProgrammingAnıl Sözeri
 
Javascript Performance Optimisation
Javascript Performance OptimisationJavascript Performance Optimisation
Javascript Performance Optimisationirfandurmus
 
Joomla kursu-antalya
Joomla kursu-antalyaJoomla kursu-antalya
Joomla kursu-antalyasersld62
 
Wpgunleri 2014 fatihtoprak.com
Wpgunleri 2014 fatihtoprak.comWpgunleri 2014 fatihtoprak.com
Wpgunleri 2014 fatihtoprak.comFatih Toprak
 

Semelhante a Django Introduction (20)

Django nedir
Django nedirDjango nedir
Django nedir
 
Radore Workshop: Wordpress Nereye Koşuyor?
Radore Workshop: Wordpress Nereye Koşuyor? Radore Workshop: Wordpress Nereye Koşuyor?
Radore Workshop: Wordpress Nereye Koşuyor?
 
F5 dergisi
F5 dergisiF5 dergisi
F5 dergisi
 
Java EE Struts
Java EE StrutsJava EE Struts
Java EE Struts
 
Dojotoolkit Nedir?
Dojotoolkit Nedir?Dojotoolkit Nedir?
Dojotoolkit Nedir?
 
Java 9 Project Jigsaw
Java 9 Project JigsawJava 9 Project Jigsaw
Java 9 Project Jigsaw
 
Yazılım Yetekenleri İle Teknik SEO Dünyasında Harikalar Yaratın
Yazılım Yetekenleri İle Teknik SEO Dünyasında Harikalar YaratınYazılım Yetekenleri İle Teknik SEO Dünyasında Harikalar Yaratın
Yazılım Yetekenleri İle Teknik SEO Dünyasında Harikalar Yaratın
 
Extjs 4 education
Extjs 4 educationExtjs 4 education
Extjs 4 education
 
progressokulu.com Advanced Business Language Slide 1
progressokulu.com Advanced Business Language Slide 1progressokulu.com Advanced Business Language Slide 1
progressokulu.com Advanced Business Language Slide 1
 
Symfony2 ve Doctrine ile PostgreSQL'i Kullanarak Performanslı Mimari Oluşturma
Symfony2 ve Doctrine ile PostgreSQL'i Kullanarak Performanslı Mimari OluşturmaSymfony2 ve Doctrine ile PostgreSQL'i Kullanarak Performanslı Mimari Oluşturma
Symfony2 ve Doctrine ile PostgreSQL'i Kullanarak Performanslı Mimari Oluşturma
 
Temel HTML Etiketleri - Text, Image, Link, List, Image
Temel HTML Etiketleri - Text, Image, Link, List, ImageTemel HTML Etiketleri - Text, Image, Link, List, Image
Temel HTML Etiketleri - Text, Image, Link, List, Image
 
Web İçin Teknoloji Geliştirmek
Web İçin Teknoloji GeliştirmekWeb İçin Teknoloji Geliştirmek
Web İçin Teknoloji Geliştirmek
 
Staj.io
Staj.ioStaj.io
Staj.io
 
Özgür Web Teknolojileri Günleri 2010 - İbrahim Hızlıoğlu // CodeIgniter Sunumu
Özgür Web Teknolojileri Günleri 2010 - İbrahim Hızlıoğlu // CodeIgniter SunumuÖzgür Web Teknolojileri Günleri 2010 - İbrahim Hızlıoğlu // CodeIgniter Sunumu
Özgür Web Teknolojileri Günleri 2010 - İbrahim Hızlıoğlu // CodeIgniter Sunumu
 
Introduction to Android Programming
Introduction to Android ProgrammingIntroduction to Android Programming
Introduction to Android Programming
 
Templates
Templates Templates
Templates
 
Javascript Performance Optimisation
Javascript Performance OptimisationJavascript Performance Optimisation
Javascript Performance Optimisation
 
Visual Studio Developer Tools
Visual Studio Developer ToolsVisual Studio Developer Tools
Visual Studio Developer Tools
 
Joomla kursu-antalya
Joomla kursu-antalyaJoomla kursu-antalya
Joomla kursu-antalya
 
Wpgunleri 2014 fatihtoprak.com
Wpgunleri 2014 fatihtoprak.comWpgunleri 2014 fatihtoprak.com
Wpgunleri 2014 fatihtoprak.com
 

Django Introduction