Django - The Web framework for perfectionists with deadlines

1,287 views

Published on

Django ist ein in Python programmiertes Framework, dass die schnelle Entwicklung von Web-Applikationen ermöglicht. Dabei wird Wert auf sauberen Code und die Wiederverwendbarkeit von einzelnen Komponenten gelegt.

Der Vortrag wurde beim Webmontag Leipzig im März 2010 gehalten.

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

No Downloads
Views
Total views
1,287
On SlideShare
0
From Embeds
0
Number of Embeds
23
Actions
Shares
0
Downloads
18
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Django - The Web framework for perfectionists with deadlines

  1. 1. The Web framework for perfectionists with deadlines Markus Zapke-Gründemann Webmontag Leipzig 29.03.2010
  2. 2. Übersicht • Über mich • Django in Deutschland • Was ist Django? • Weiterführende Links • Python • DjangoCon Europe • Architektur • Workshop in Leipzig • Django in freier Wildbahn
  3. 3. Markus Zapke-Gründemann • Softwareentwickler seit 2001 • Schwerpunkt: Web Application Development mit Python und PHP • Django, Symfony & Zend Framework • Freier Softwareentwickler und Berater seit 2008 • www.keimlink.de
  4. 4. Was ist Django?
  5. 5. Jean "Django" Reinhardt 23.1.1910 - 16.5.1953 Bildquelle: http://en.wikipedia.org/wiki/File:Django9.jpg
  6. 6. Was ist Django? • Web Application Framework • In Python geschrieben • Open Source Software (BSD Lizenz) • Django Software Foundation • Umfangreiche Dokumentation • Große, freundliche Community
  7. 7. Was ist Django? • Rapid Development • Loose Coupling • Wiederverwendbare Applikationen • Don't Repeat Yourself (DRY) Every piece of knowledge must have a single, unambiguous, authoritative representation within a system. http://c2.com/cgi/wiki?DontRepeatYourself
  8. 8. Und natürlich Ponies!
  9. 9. Ponies?
  10. 10. Ponies?
  11. 11. The Python logo is a trademark of the Python Software Foundation.
  12. 12. Guido van Rossum begann 1989 mit der Entwicklung von Python Bildquelle: http://commons.wikimedia.org/wiki/File:Guido_van_Rossum_OSCON_2006.jpg
  13. 13. class Input(Widget): """ Base class for all <input> widgets (except type='checkbox' and type='radio', which are special). """ input_type = None # Subclasses must define this. def render(self, name, value, attrs=None): if value is None: value = '' final_attrs = self.build_attrs(attrs, type=self.input_type, name=name) if value != '': # Only add the 'value' attribute if a value is non-empty. final_attrs['value'] = force_unicode(formats.localize_input(value)) return mark_safe(u'<input%s />' % flatatt(final_attrs)) Objektorientierte Sprache
  14. 14. Große Standardbibliothek Bildquelle: http://www.flickr.com/photos/jhoweaa/327651705/
  15. 15. Unit Testing Bildquelle: http://www.flickr.com/photos/sidelong/246816211/
  16. 16. Viele Betriebssysteme Alle Logos und Warenzeichen auf dieser Seite sind Eigentum der jeweiligen Besitzer und Lizenzhalter.
  17. 17. Gutes Programmierwerkzeug Bildquelle: http://www.flickr.com/photos/philentropist/176054470/
  18. 18. Freie Software Bildquelle: http://www.flickr.com/photos/gagilas/3809232008/
  19. 19. WSGI, FastCGI, mod_python Bildquelle: http://www.flickr.com/photos/torkildr/3462607995/
  20. 20. Architektur
  21. 21. Full Stack Framework Middleware Tags Filter XML JSON YAML RSS Atom Testing Cache i18n Validatoren Formulare Template Serializer Syndication View Object Relational Mapper URLConf Models Applications Admin Unicode Datenbanken Python
  22. 22. Webserver
  23. 23. Webserver
  24. 24. Webserver URLConf
  25. 25. Webserver URLConf Middleware
  26. 26. Webserver URLConf Middleware
  27. 27. Webserver URLConf Middleware View
  28. 28. Webserver URLConf Middleware View
  29. 29. Webserver URLConf Middleware View Model (ORM)
  30. 30. Webserver URLConf Middleware View Model (ORM)
  31. 31. Webserver URLConf Middleware View Model (ORM) Datenbank
  32. 32. Webserver URLConf Middleware View Model (ORM) Datenbank
  33. 33. Webserver URLConf Middleware View Template Model (ORM) Datenbank
  34. 34. Webserver URLConf Middleware View Template Model (ORM) Datenbank
  35. 35. Webserver URLConf Middleware View Template Model (ORM) Tags & Filter Datenbank
  36. 36. Webserver URLConf Middleware View Template Model (ORM) Tags & Filter Datenbank
  37. 37. Model from django.db import models class Musician(models.Model): first_name = models.CharField(max_length=50) last_name = models.CharField(max_length=50) instrument = models.CharField(max_length=100) class Album(models.Model): artist = models.ForeignKey(Musician) name = models.CharField(max_length=100) release_date = models.DateField() num_stars = models.IntegerField()
  38. 38. URLConf from django.conf.urls.defaults import * extra_patterns = patterns('', url(r'reports/(?P<id>d+)/$', 'credit.views.report', name='credit-reports'), url(r'charge/$', 'credit.views.charge', name='credit-charge'), ) urlpatterns = patterns('', url(r'^$', 'apps.main.views.homepage', name='site-homepage'), (r'^help/', include('apps.help.urls')), (r'^credit/', include(extra_patterns)), )
  39. 39. View from django.shortcuts import render_to_response, get_object_or_404 from ponyfarm.models import Farm def farm(request, farm_id): farm = get_object_or_404(Farm, pk=farm_id) return render_to_response('ponyfarm/farm.html', {'farm': farm})
  40. 40. Template <html> <head> <title>{% block title %}My Pony Farm{% endblock %}</title> </head> <body> <h2>My Pony Farm</h2> {% block content %} {% endblock %} </body> </html> {% extends "base.html" %} {% block title %}{{ block.super }} - {{ farm.title }}{% endblock %} {% block content %} <h3>{{ farm.title }}</h3> <p>{{ farm.description|linebreaks }}</a></p> <p><a href="{% url ponyfarm_object_list %}">back to overview</a></p> {% endblock %}
  41. 41. Eingebauter Webserver $ python manage.py runserver Validating models... 0 errors found Django version 1.1.1, using settings 'ponysite.settings' Development server is running at http://127.0.0.1:8000/ Quit the server with CONTROL-C. [25/Mar/2010 17:48:50] "GET /admin/ HTTP/1.1" 200 1686 [25/Mar/2010 17:49:04] "POST /admin/ HTTP/1.1" 302 0 [25/Mar/2010 17:49:04] "GET /admin/ HTTP/1.1" 200 5674 [25/Mar/2010 17:49:08] "GET /admin/auth/user/ HTTP/1.1" 200 4788 [25/Mar/2010 17:49:14] "GET /admin/ HTTP/1.1" 200 5674 [25/Mar/2010 17:49:17] "GET /admin/auth/user/ HTTP/1.1" 200 4788
  42. 42. Admin
  43. 43. Django in freier Wildbahn
  44. 44. www.ljworld.com
  45. 45. www.theonion.com Bildquelle: http://twitter.com/TheOnion/status/10921296161
  46. 46. www.everyblock.com
  47. 47. disqus.com
  48. 48. www.rapidsms.org Bildquelle: http://www.rapidsms.org/about/take-the-tour/
  49. 49. filmaster.com
  50. 50. trailmapping.com
  51. 51. Django in Deutschland
  52. 52. Django-Entwickler Bildquelle: http://djangopeople.net/de/
  53. 53. Deutscher Django-Verein e.V. • Gegründet im Dezember 2009 • 16 Mitglieder • Kommunikation der Entwickler und Anwender fördern • Weiterentwicklung von Django voran treiben • www.django-de.org
  54. 54. Weiterführende Links • www.djangoproject.com • www.djangobook.com/en/2.0 • djangoplugables.com • www.djangosnippets.org • www.python.org • www.diveintopython.org
  55. 55. DjangoCon Europe
  56. 56. Python & Django Workshop • 17. April 2010 • Python: 9:00 bis 13:00 Uhr • Django: 14:00 bis 18:00 Uhr • Im Coworking Space „Le Space“ • Unkostenbeitrag: 10 EUR • Anmeldung: info@keimlink.de
  57. 57. Lizenz Dieses Werk ist unter einem Creative Commons Namensnennung-Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenzvertrag lizenziert. Um die Lizenz anzusehen, gehen Sie bitte zu http://creativecommons.org/licenses/by-sa/3.0/ oder schicken Sie einen Brief an Creative Commons, 171 Second Street, Suite 300, San Francisco, California 94105, USA. Django is a registered trademark of the Django Software Foundation.

×