Your SlideShare is downloading. ×
0
Warum istdjangosocool
Warum istdjangosocool
Warum istdjangosocool
Warum istdjangosocool
Warum istdjangosocool
Warum istdjangosocool
Warum istdjangosocool
Warum istdjangosocool
Warum istdjangosocool
Warum istdjangosocool
Warum istdjangosocool
Warum istdjangosocool
Warum istdjangosocool
Warum istdjangosocool
Warum istdjangosocool
Warum istdjangosocool
Warum istdjangosocool
Warum istdjangosocool
Warum istdjangosocool
Warum istdjangosocool
Warum istdjangosocool
Warum istdjangosocool
Warum istdjangosocool
Warum istdjangosocool
Warum istdjangosocool
Warum istdjangosocool
Warum istdjangosocool
Warum istdjangosocool
Warum istdjangosocool
Warum istdjangosocool
Warum istdjangosocool
Warum istdjangosocool
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Warum istdjangosocool

917

Published on

Eine sehr kurze Vorstellung des Webframeworks Django

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
917
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
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

    • 1. DJANGO The webframework for perfectionists with deadlines
    • 2. Wie liefen die Übungen bei euch? War doch ganz easy oder ?
    • 3. Wie liefen die Übungen bei euch? Eher doch nicht?
    • 4. Wir bauen uns ein Content Management System…
    • 5. Was braucht man dafür alles?
    • 6. Wie lange braucht man dafür wohl?
    • 7. Mit Django brauchst du dafür… einzigen Tag Einen
    • 8. Mit Django brauchst du dafür…
    • 9. Wo ist Django entstanden? World Online Enge Deadlines Ständig neue Anforderungen Oft nur wenige Stunden
    • 10. Wer verwendet Django? App Engine
    • 11. Wer verwendet Django?
    • 12. Wer verwendet Django?
    • 13. Wer verwendet Django? NEBULA
    • 14. Wer verwendet Django?
    • 15. Was also macht Django besonders?
    • 16. Django ist in Python geschrieben
    • 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. 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. Python wird von der Elite benutzt
    • 20. Django folgt der MVC-Architektur … oder so ähnlich  View Template Model Database
    • 21. Django folgt der MTV-Architektur!
    • 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. Django erzeugt deinen Adminbereich automatisch Ein komplettes Admininterface in nur 2 Minuten!
    • 24. Django-App: Simple Poll 1. Projekt anlegen >> django-admin.py startproject mysite 2. App anlegen >> python manage.py startapp simplepolls
    • 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. Simple Poll: Datenbank erzeugen >> python manage.py syncdb
    • 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. 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. Simple Polls: Adminbereich erstellen settings.py INSTALLED_APPS = ( […] 'django.contrib.admin', […] ) urls.py Drei Zeilen einkommentieren … python manage.py syncdb Done!
    • 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. Fragen!
    • 32. Django-Links djangoproject.com djangobook.com djangopackages.com pydev.org

    ×