Warum istdjangosocool

Preview:

DESCRIPTION

Eine sehr kurze Vorstellung des Webframeworks Django

Citation preview

DJANGOThe webframework for perfectionists with deadlines

Wie liefen die Übungen bei euch?War doch ganz easy oder ?

Wie liefen die Übungen bei euch?Eher doch nicht?

Wir bauen uns ein Content Management System…

Was braucht man dafür alles?

Seitenverwaltung

RSS-FeedsBenutzerverwaltung

Adminpanel

DatenbankWeblog

Dat

enba

nkab

frag

en

Wie lange braucht man dafür wohl?

Mit Django brauchst du dafür…

einzigenTag

Einen

Mit Django brauchst du dafür…

WTF ?!

Wo ist Django entstanden?

World OnlineEnge Deadlines

Ständig neue Anforderungen

Oft nur wenige Stunden

Wer verwendet Django?

App Engine

Wer verwendet Django?

Wer verwendet Django?

Wer verwendet Django?

NEBULA

Wer verwendet Django?

Was also macht Django besonders?

Django ist in Python geschrieben

Python ist elegant

Simple is better than complex.

Readability counts.

There should be one-- and preferably only one --obvious way to do it.

Python ermöglicht sehr schnelle Entwicklung

"Python is fast enough for our site and allows us to produce maintainable features in record times, with a minimum of developers," said Cuong Do, Software Architect,YouTube.com.

Python wird von der Elite benutzt

Django folgt der MVC-Architektur… oder so ähnlich

View

Template

Model

Database

Django folgt der MTV-Architektur!

Django macht alle Datenbankarbeit für dich

Object Relational

Mapper (ORM)

Database

Object1

Foo{}

Object2

Foo{}

Kein SQL nötig!

Python-only development

Höhere Produktivität

Django erzeugt deinen Adminbereich automatisch

Ein komplettes Admininterfacein nur 2 Minuten!

Django-App: Simple Poll

1. Projekt anlegen

>> django-admin.py startproject mysite

2. App anlegen

>> python manage.py startapp simplepolls

Simple Poll: Datenmodell erstellen

Tatort: models.py

from django.db import models

class Poll(models.Model): question = models.CharField(max_length=200) pub_date = models.DateTimeField('date published')

class Choice(models.Model): poll = models.ForeignKey(Poll) choice = models.CharField(max_length=200) votes = models.IntegerField()

Simple Poll: Datenbank erzeugen

>> python manage.py syncdb

Simple Polls: Template erstellen

Tatort: polls/index.html{% if latest_poll_list %} <ul> {% for poll in latest_poll_list %} <li> <a href="/polls/{{ poll.id }}/">{{ poll.question }}</a> </li> {% endfor %} </ul> {% else %} <p>No polls are available.</p> {% endif %}

Simple Polls: View erstellen

Tatort: polls/views.py

from django.shortcuts import render_to_responsefrom polls.models import Poll

def index(request): latest_poll_list = Poll.objects.all().order_by('-pub_date')[:5] return render_to_response('polls/index.html', {'latest_poll_list': latest_poll_list})

Simple Polls: Adminbereich erstellen

settings.pyINSTALLED_APPS = ( […] 'django.contrib.admin', […])

urls.pyDrei Zeilen einkommentieren…python manage.py syncdb

Done!

Was gibt es noch?

pretty url configinternationlization

caching

authentication 

commentsGeoDjango

session management

syndication feeds

file handling/storage

forms logging

Und noch viel mehr…

Fragen!

Django-Links

djangoproject.com

djangobook.com

djangopackages.com

pydev.org