Your SlideShare is downloading. ×
0
DJANGO
The 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?
Wie lange braucht man dafür wohl?
Mit Django brauchst du dafür…
einzigen
Tag
Einen
Mit Django brauchst du dafür…
Wo ist Django entstanden?
World Online
Enge 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
--obvi...
Python ermöglicht sehr schnelle Entwicklung
"Python is fast enough for our site and
allows us to produce maintainable feat...
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ö...
Django erzeugt deinen Adminbereich automatisch
Ein komplettes Admininterface
in nur 2 Minuten!
Django-App: Simple Poll
1. Projekt anlegen
>> django-admin.py startproject mysite
2. App anlegen
>> python manage.py start...
Simple Poll: Datenmodell erstellen
Tatort: models.py
from django.db import models
class Poll(models.Model):
question = mod...
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 %...
Simple Polls: View erstellen
Tatort: polls/views.py
from django.shortcuts import render_to_response
from polls.models impo...
Simple Polls: Adminbereich erstellen
settings.py
INSTALLED_APPS = (
[…]
'django.contrib.admin',
[…]
)
urls.py
Drei Zeilen ...
Was gibt es noch?
pretty url config
internationlization
caching
authentication
comments
GeoDjango
session management
syndi...
Fragen!
Django-Links
djangoproject.com
djangobook.com
djangopackages.com
pydev.org
Upcoming SlideShare
Loading in...5
×

Warum istdjangosocool

921

Published on

Eine sehr kurze Vorstellung des Webframeworks Django

Published in: Technology, Design
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
921
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Django Reinhardt,
    Dreifingriger Jazzmusiker der 1930er Jahre,
    Namenspate des Webframeworks.

  • World Online ist ein großer Zeitungsverlag
    Unterhält eine Reihe von Newswebseiten
    Newsgeschäft ist hochdynamisch
    Enge Deadlines erforderten eine Technologie, die sehr schnelle Entwicklung erlaubt
    Die Technologie musste hochmodular sein, da die Webseiten für Testzwecke nicht offline genommen werden konnten
  • Google ermöglicht die Nutzung seiner Infrastruktur via Google App Engine – kostenfrei!
    Verschiedene Serverkonfigurationen werden angeboten, auch Django
    Das Google App Engine Frontend basiert auf Django
  • DISQUS ist ein weitverbreitetes Kommentarsystem
    Millionen Kommentare Weltweit
    Wird von vielen namhaften Webseiten genutzt: CNN, Time Magazine, FoxNews, IGN, engadget
  • Schwedischer Musiksharingdienst auf P2P-Basis
    In Deutschland leider nicht verfügbar wegen zu hoher Forderungen der GEMA
  • Die NASA nutzt Django für das Frontend ihres Nebula Cloud Service
  • Auch die New York Time und die Washington Post nutzen Django für die Entwicklung ihrer Webangebote.
  • Django ist in Python geschrieben und nutzt Python auch als Entwicklungssprache
    Python ist nach der britischen Comedytruppe „Monty Python“ benannt
  • Im „Zen of Python“ sind die Designprinzipien der Sprache pseudophilosophisch festgehalten
    Die drei genannten Punkte stellen den Kern der Prinzipien
    Einfache Sprachelemente und Syntax
    Lesbarer Quellcode
    Eindeutige und offensichtliche Implementierungswege
  • - Die Unternehmen/Institutionen, welche die talentiertesten Informatiker der Welt anheuern nutzen Python in ihren Kernanwendungen
  • Django folgt der MVC-Architektur
    Nutzt aber eine eigene Nomenklatur
    Model == Model
    Template == View
    View == Controller
  • Deshalb wird in Verbindung mit Django eher von der MTV-Architektur (Model – Template – View) gesprochen!
  • ORM bildet eine Abstraktionsebene zwischen dem Pythondatenmodell und dem Datenbankdatenmodell
    Man kann ein Pythonobjekt an die Datenbank senden und erhält auch ein Pythonobjekt wieder zurück
    Der ORM übernimmt die Translation zwischen Python und Datenbank
    Dadurch entfällt eine gesonderte SQL-Entwicklung
    Die Anwendung wird sicherer, da SQL-Injection durch den ORM (Stichworte Escaping und Prepared Statements) verhindert wird
    Die Produktivität ist höher, da man als Entwickler sich nur mit einer Programmiersprache befassen muss und so Paradigmenwechsel vermeidet
  • Adminbereiche programmieren ist sehr lästige Arbeit
    Python bietet vollautomatische Adminbereichsgenerierung anhand des Datenmodells
    Die Adminbereiche lassen sich natürlich noch mittels Templates und CSS verfeinern/anpassen
    Das Admininterface ist in weniger als 2 Minuten bereit!
  • Ein Djangoprojekt enthält die benötigte Konfiguration für deine Website
    Einem Projekt lassen sich beliebige Django-Apps hinzufügen
    Jedes Projekt kommt mit einigen wesentlichen vorinstallierten Apps:
    Authentifizierungssystem
    Content Type Framework
    Sessionverwaltung
    Verwaltung für mehrere parallele Website auf einer Djangoinstallation
    Messaging Framework
    Verwaltung für statische Dateien
  • Am Beginn einer jeden Django-App steht das Datenmodell
    Es wird im Skript models.py definiert
    Pythonklassen definieren Entitäten und können beliebige Attribute enthalten
    Jede dieser Klassen erbt von models.Model und enthält Mapperfunktionen für alle möglichen Datenbankdatentypen
  • Das Datenbankschema erstellt Django vollautomatisch mittels dem Befehl syncdb
    Das Schema kann auch nachträglich noch (in gewissen Grenzen) geändert werden
  • Django bietet eine Templateengine
    Sie ist für Designer konzipiert worden und beinhaltet daher nur wenige Syntaxelemente
    Designer können sich auf die Gestaltung konzentrieren gemäß des Prinzips „Separation of Concerns“
    Templates können sich dynamisch je nach „Context“ verhalten.
    Der jeweilige Context wird durch die View definiert, welche das Template anspricht
  • Die View liefert die Business Logic der Django-App
    Sie definiert, welche (Context) Daten angezeigt werden sollen
    … Aber NICHT auf welche Weise / in welcher Formatierung!
    Hierfür ist das jeweilige Template zuständig
  • settings.py enthält die allgemeine Konfiguration
    Vor allem eine Liste der genutzten Apps
    urls.py dient dem Mapping von HTTP-Requests auf Funktionen in views.py
    Sie bildet die Djangointerpretation des Front Controllers
    Das Mapping ist sehr leistungsfähig, da Reguläre Ausdrücke verwendet werden
    Es ist darauf ausgerichtet „hübsche“ URLs volldynamisch zu erstellen.
    Beispiel: http://www.mysite/articles/2011/february/11/apple-sues-htc/
  • Abseits der vorinstallierten Apps gibt es noch sehr viele weitere in Django enthaltene Apps
    Webforms
    Server Logs
    Internationalisierung (mehrsprachige Seiten)
    Dateiverwaltung / Speicherung
    Feederstellung (RSS/ATOM)
    Caching (memcache ist Standard)
    Geodatenanwendungen mit GeoDjango
    Kommentarsystem
    Uvm.
  • Djangoseite (Djangosoftware, Sourcecode, Dokumentation, Tutorials, Blogs uvm.)
    http://www.djangoproject.com
    Django Book (Ausführlicher User Guide)
    http://www.djangobook.com
    Django Apps zur freien Verwendung in euren Projekten
    http://www.djangopackages.com
    Pydev – Das Plugin für Eclipse bildet eine vollständige Python IDE mit vollständiger Unterstützung für Django
    http://www.pydev.org
    Es gibt auch ein entsprechendes Plugin für Netbeans. Link habe ich gerade nicht zur Hand 
  • Transcript of "Warum istdjangosocool"

    1. 1. DJANGO The webframework for perfectionists with deadlines
    2. 2. Wie liefen die Übungen bei euch? War doch ganz easy oder ?
    3. 3. Wie liefen die Übungen bei euch? Eher doch nicht?
    4. 4. Wir bauen uns ein Content Management System…
    5. 5. Was braucht man dafür alles?
    6. 6. Wie lange braucht man dafür wohl?
    7. 7. Mit Django brauchst du dafür… einzigen Tag Einen
    8. 8. Mit Django brauchst du dafür…
    9. 9. Wo ist Django entstanden? World Online Enge Deadlines Ständig neue Anforderungen Oft nur wenige Stunden
    10. 10. Wer verwendet Django? App Engine
    11. 11. Wer verwendet Django?
    12. 12. Wer verwendet Django?
    13. 13. Wer verwendet Django? NEBULA
    14. 14. Wer verwendet Django?
    15. 15. Was also macht Django besonders?
    16. 16. Django ist in Python geschrieben
    17. 17. Python ist elegant Simple is better than complex. Readability counts. There should be one-- and preferably only one --obvious way to do it.
    18. 18. 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.
    19. 19. Python wird von der Elite benutzt
    20. 20. Django folgt der MVC-Architektur … oder so ähnlich  View Template Model Database
    21. 21. Django folgt der MTV-Architektur!
    22. 22. 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
    23. 23. Django erzeugt deinen Adminbereich automatisch Ein komplettes Admininterface in nur 2 Minuten!
    24. 24. Django-App: Simple Poll 1. Projekt anlegen >> django-admin.py startproject mysite 2. App anlegen >> python manage.py startapp simplepolls
    25. 25. 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()
    26. 26. Simple Poll: Datenbank erzeugen >> python manage.py syncdb
    27. 27. 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 %}
    28. 28. Simple Polls: View erstellen Tatort: polls/views.py from django.shortcuts import render_to_response from 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})
    29. 29. Simple Polls: Adminbereich erstellen settings.py INSTALLED_APPS = ( […] 'django.contrib.admin', […] ) urls.py Drei Zeilen einkommentieren … python manage.py syncdb Done!
    30. 30. Was gibt es noch? pretty url config internationlization caching authentication comments GeoDjango session management syndication feeds file handling/storage forms logging Und noch viel mehr…
    31. 31. Fragen!
    32. 32. Django-Links djangoproject.com djangobook.com djangopackages.com pydev.org
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×