• Like

Loading…

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

Warum istdjangosocool

  • 864 views
Uploaded on

Eine sehr kurze Vorstellung des Webframeworks Django

Eine sehr kurze Vorstellung des Webframeworks Django

More in: Technology , Design
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
864
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
2
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, DreifingrigerJazzmusiker der 1930er Jahre,Namenspate des Webframeworks.
  • World Online ist ein großer ZeitungsverlagUnterhält eine Reihe von NewswebseitenNewsgeschäft ist hochdynamischEnge Deadlines erforderten eine Technologie, die sehr schnelle Entwicklung erlaubtDie 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 DjangoDas Google App Engine Frontend basiert auf Django
  • DISQUS ist ein weitverbreitetes KommentarsystemMillionen Kommentare WeltweitWird von vielen namhaften Webseiten genutzt: CNN, Time Magazine, FoxNews, IGN, engadget
  • Schwedischer Musiksharingdienst auf P2P-BasisIn Deutschland leider nicht verfügbar wegen zu hoher Forderungen der GEMA
  • Die NASA nutzt Django für das Frontend ihres NebulaCloud 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 EntwicklungssprachePython ist nach der britischen Comedytruppe „Monty Python“ benannt
  • Im „Zen of Python“ sind die Designprinzipien der Sprache pseudophilosophisch festgehaltenDie drei genannten Punkte stellen den Kern der PrinzipienEinfache Sprachelemente und SyntaxLesbarer QuellcodeEindeutige und offensichtliche Implementierungswege
  • - Die Unternehmen/Institutionen, welche die talentiertesten Informatiker der Welt anheuern nutzen Python in ihren Kernanwendungen
  • Django folgt der MVC-ArchitekturNutzt aber eine eigene NomenklaturModel == ModelTemplate == ViewView == Controller
  • Deshalb wird in Verbindung mitDjango eher von der MTV-Architektur (Model – Template – View) gesprochen!
  • ORM bildet eine Abstraktionsebene zwischen dem Pythondatenmodell und dem DatenbankdatenmodellMan kann ein Pythonobjekt an die Datenbank senden und erhält auch ein Pythonobjekt wieder zurückDer ORM übernimmt die Translation zwischen Python und DatenbankDadurch entfällt eine gesonderte SQL-EntwicklungDie Anwendung wird sicherer, da SQL-Injection durch den ORM (Stichworte Escaping und Prepared Statements) verhindert wirdDie 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 ArbeitPython bietet vollautomatische Adminbereichsgenerierung anhand des DatenmodellsDie Adminbereiche lassen sich natürlich noch mittels Templates und CSS verfeinern/anpassenDas Admininterface ist in weniger als 2 Minuten bereit!
  • Ein Djangoprojekt enthält die benötigte Konfiguration für deine WebsiteEinem Projekt lassen sich beliebige Django-Apps hinzufügenJedes Projekt kommt mit einigen wesentlichen vorinstallierten Apps:AuthentifizierungssystemContent Type FrameworkSessionverwaltungVerwaltung für mehrere parallele Website auf einer DjangoinstallationMessaging FrameworkVerwaltung für statische Dateien
  • Am Beginn einer jeden Django-App steht das DatenmodellEs wird im Skript models.py definiertPythonklassen definieren Entitäten und können beliebige Attribute enthaltenJede dieser Klassen erbt von models.Model und enthält Mapperfunktionen für alle möglichen Datenbankdatentypen
  • Das Datenbankschema erstellt Django vollautomatisch mittels dem Befehl syncdbDas Schema kann auch nachträglich noch (in gewissen Grenzen) geändert werden
  • Django bietet eine TemplateengineSie ist für Designer konzipiert worden und beinhaltet daher nur wenige SyntaxelementeDesigner können sich auf die Gestaltung konzentrieren gemäß des Prinzips „Separation ofConcerns“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-AppSie 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 KonfigurationVor allem eine Liste der genutzten Appsurls.py dient dem Mapping von HTTP-Requests auf Funktionen in views.pySie bildet die Djangointerpretation des Front ControllersDas Mapping ist sehr leistungsfähig, da Reguläre Ausdrücke verwendet werdenEs 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 AppsWebformsServer LogsInternationalisierung (mehrsprachige Seiten)Dateiverwaltung / SpeicherungFeederstellung (RSS/ATOM)Caching (memcache ist Standard)Geodatenanwendungen mit GeoDjangoKommentarsystemUvm.
  • Djangoseite (Djangosoftware, Sourcecode, Dokumentation, Tutorials, Blogs uvm.)http://www.djangoproject.comDjango Book (Ausführlicher User Guide)http://www.djangobook.comDjango Apps zur freien Verwendung in euren Projektenhttp://www.djangopackages.comPydev – Das Plugin für Eclipse bildet eine vollständige Python IDE mit vollständiger Unterstützung für Djangohttp://www.pydev.orgEs gibt auch ein entsprechendes Plugin für Netbeans. Link habe ich gerade nicht zur Hand 

Transcript

  • 1. DJANGOThe webframework for perfectionistswith 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… Einen einzigen Tag
  • 8. Mit Django brauchst du dafür…
  • 9. Wo ist Django entstanden? World Online Enge Deadlines Oft nur wenige Stunden Ständig neue Anforderungen
  • 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 andallows us to produce maintainable featuresin 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 Model Template Database
  • 21. Django folgt der MTV-Architektur!
  • 22. Django macht alle Datenbankarbeit für dichObject1 Object2Foo{} Foo{} Object Relational Mapper (ORM) Kein SQL nötig! Python-only development Database Höhere Produktivität
  • 23. Django erzeugt deinen Adminbereich automatisch Ein komplettes Admininterface in nur 2 Minuten!
  • 24. Django-App: Simple Poll1. Projekt anlegen >> django-admin.py startproject mysite2. App anlegen >> python manage.py startapp simplepolls
  • 25. Simple Poll: Datenmodell erstellenTatort: 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 erstellenTatort: 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 erstellenTatort: polls/views.pyfrom django.shortcuts import render_to_responsefrom polls.models import Polldef 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 erstellensettings.py INSTALLED_APPS = ( […] django.contrib.admin, […] )urls.py Drei Zeilen einkommentieren … python manage.py syncdb Done!
  • 30. Was gibt es noch? forms logging session management authentication internationlization pretty url config file handling/storage syndication feeds caching GeoDjango comments Und noch viel mehr…
  • 31. Fragen!
  • 32. Django-Links djangoproject.com djangobook.com djangopackages.com pydev.org