Upload
tim-jagodzinski
View
910
Download
0
Embed Size (px)
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