Webentwicklung mit Django

Mit Python und Django schnell und sicher moderne Webanwendungen schreiben

In diesem Kurs lernen Sie, wie Sie Python und Django nutzen können um in kürzester Zeit Web-Anwendungen zu entwickeln und zu veröffentlichen.

Django ist ein Web-Anwendungs-Framework für Python, das die Entwicklung nicht nur beschleunigt, sondern auch sicherer macht.

Django wurde 2003 im Zeitungs-Umfeld des Lawrence Journal entwickelt und entspringt so der hektischen Welt der amerikanischen News. Um geordnete und sichere Web-Entwicklung in dieses schwierige Umfeld zu bringen enthält Django alles was notwendig ist, um eine moderne Web-Anwendung schnell und einfach zu entwickeln:

  • einen ORM der die Interaktion mit der Datenbank vereinfacht,
  • ein sicheres Authentifizierungssystem,
  • Session-Management,
  • eine gut integrierte Template-Sprache,
  • Formular-Interaktion,
  • RSS-Integration,
  • eingebautes Mehrsprachenmanagement,
  • eine Testumgebung,
  • Caching-Einstellungen,
  • Anbindung für alle gängigen Webserver,
  • einen eigenen Entwicklungsserver für Rapid Development und
  • ein mächtiges eingebautes Daten-Management-System, das für viele Webseiten das komplette Backend ersetzen kann.

Dazu kommen diverse Open-Source-Bibliotheken und natürlich alle erdenklichen Python-Bibliotheken.

Sie können Django auf Ihrem eigenen Rechner betreiben, auf einem Internet-Server, auf einem Amazon-Cluster (mit Amazon-Integration) und auf Google AppEngine.

Neben den notwendigen, rein technischen Themen werden wir uns außerdem mit den oft vernachlässigten "weicheren" Aspekten der Web-Entwicklung befassen: Design und Struktur einer Web-Anwendung, Erweiterbarkeit, Wartbarkeit, gemeinsames Arbeiten und natürlich der dauerhafte, sichere Betrieb auf eigenen oder fremden Servern. Dazu entwickeln wir innerhalb des Kurses zwei komplette kleine Anwendungen.

Nach Abschluss dieses Kurses werden Sie in der Lage sein Django zu nutzen um alleine und in Teams Webanwendungen zu entwickeln, diese auf einem Webserver zu veröffentlichen und dauerhaft zu betreiben.

Voraussetzungen

Jede Django-Anwendung wird in Python geschrieben, so dass Vorkenntnisse in dieser Sprache sehr hilfreich sind. Da viele gängigen Skriptsprachen sehr ähnlich sind, ist aber durchaus auch der Einstieg aus einer anderen Sprache möglich (z.B. Ruby, PHP oder Perl). Der Quereinstieg aus traditionellen, kompilierten Sprachen wie Java, C oder C++ ist auch möglich; Sie sollten sich jedoch vor Beginn des Kurses bereits mit Python befassen um einen schnellen Einstieg in die Themen des Kurses erhalten zu können.
Sie sollten die Konzepte von Objektorientierter Entwicklung kennen.

Sie sollten zudem bereits Kontakt mit Web-Entwicklung haben, so dass Sie bereits wissen wie HTTP, HTML und CSS zusammenarbeiten um eine Webseite zu erzeugen. Das Design und die Erstellung von HTML-Seiten ist nicht primäres Ziel des Kurses.

Inhalt

Einführung

  • eine Demo-Anwendung (wo wir hin wollen)
  • kurze Python-Auffrischung (falls notwendig)
  • Installation und notwendige Einrichtungen

Aufbau

  • der generelle Aufbau einer Django-Anwendung
  • Django-Komponenten
  • Einrichtung der ersten Django-Umgebung
  • Erste Einstellungen
  • django-admin.py/manage.py als Einstiegspunkt für die Verwaltung
  • Django-Kommandos
  • Nützliche Apps für die Entwicklung
  • MVC in Django

Model: der Django-ORM

  • Datenbanken
  • Feldtypen
  • Anlegen und Verwalten von Modellen
  • Modellmigration uns Migrationsverwaltung

Controller: Django-View-Funktionen und -Klassen

  • URLs und Routing
  • View-Funktionen und View-Klassen
  • Django-Requests
  • Formulare
  • Shortcuts und eingebaute Views

View: Django-Templates

  • Aufruf von Templates
  • die Django-Template-Sprache

Alles Zusammen: eine komplette Anwendung

  • Modellierung: ORM
  • Controllers: View-Funktionen
  • View: Templates

Deployment

  • gunicorn-Deployment auf caddy (oder einem anderen Webserver)
  • Betrieb in docker-Containern
  • Datenbank-Verwaltung

Die folgenden Themen werden nach Absprache mit den Teilnehmern aufgenommen oder weggelassen:

Mehr zur Modellierung

  • Model-Actions
  • Modell-Funktionen

Mehr zu Controllern

  • Datei-Uploads
  • Datei-Downloads
  • PDF-Erzeugung
  • Middlewares
  • Mails versenden

Mehr zu Templates

  • Template-Tags und Filter selbst schreiben

Wiederverwendbare Apps

  • cookiecutter-django
  • django-annoying
  • django-rest-framework
  • selbst schreiben

Offline-Processing mit Celery

Einrichten und benutzen

Kurszeiten

Wer möchte, reist bis 22 Uhr am Vortag an und nutzt den Abend bereits zum Fachsimpeln am Kamin oder im Park.

An den Kurstagen dann von 9-18 Uhr (mit 2 Kaffee- und 1 Mittagspause) etwa 60% Schulungen und 40% Übungen. Selbstverständlich arbeitet jeder Teilnehmer am von uns gestellten Notebook oft parallel zum Referenten mit.

Anschließend Abendessen und Angebote für Fachsimpeln, Ausflüge uvm. Wir schaffen eine Atmosphäre, in der Fachleute sich ungezwungen austauschen. Wer das nicht will, wird zu nichts gezwungen und findet auch jederzeit Ruhe.