Python – Praxis und professionelle Entwicklung
Objektorientierung, Pakete, REST-APIs, Datenbanken, Tests und Automatisierung für den Berufsalltag
Du kannst Python schon schreiben, jetzt lernst du, es im Beruf einzusetzen. Du modellierst Geräte und Tickets mit Klassen, verwaltest Abhängigkeiten in virtuellen Umgebungen, sprichst JSON-APIs sicher an, speicherst Daten mit sqlite3 und sicherst deinen Code mit Tests und Typangaben ab. Alle Beispiele stammen aus dem Alltag eines IT-Systemhauses: Inventar, Tickets, Logdateien und Schnittstellen.
Lernpfad
-
01
Objektorientierung: Geräte und Tickets modellieren
Klassen, Objekte, Eigenschaften, Vererbung, Komposition und dataclasses. Du baust die Bausteine eines kleinen Inventar- und Ticketsystems.
- Klassen und Objekte Eine Klasse ist ein Bauplan, ein Objekt eine konkrete Ausführung davon, mit eigenen Daten und passenden Methoden. 14 Min.
- Eigenschaften und dataclasses Mit @property schützt du Werte vor ungültigen Eingaben, mit @dataclass sparst du dir Routinecode. 14 Min.
- Vererbung und Komposition Vererbung modelliert „ist ein“, Komposition modelliert „hat ein“. Du lernst, wann was passt, und findest typische Fehler. 15 Min.
- T Modultest: Objektorientierung Test
-
02
Pakete und Umgebungen: reproduzierbar und sicher
Module und Pakete, virtuelle Umgebungen, pip, requirements.txt, pyproject.toml, Versionsangaben und der sichere Umgang mit Abhängigkeiten.
- Module, Pakete und virtuelle Umgebungen Du strukturierst Code in Module und Pakete und gibst jedem Projekt seine eigene virtuelle Umgebung. 14 Min.
- requirements.txt, pyproject.toml und Versionen Du beschreibst Abhängigkeiten mit Versionsangaben, liest Versionsnummern richtig und unterscheidest requirements.txt von pyproject.toml. 14 Min.
- Praxis: Abhängigkeiten sicher verwalten Du prüfst Paketnamen auf Tippfehler-Fallen, bewertest veraltete Versionen und planst eine regelmäßige Prüfung mit pip-audit. 15 Min.
- T Modultest: Pakete und Umgebungen Test
-
03
HTTP und REST-APIs: Daten robust abrufen
HTTP-Grundlagen, JSON-Antworten auswerten, URLs bauen, Statuscodes behandeln, Zeitlimits, Wiederholversuche und Authentifizierung per Token ohne Secrets im Code.
- HTTP, JSON und URLs Du verstehst Anfrage und Antwort bei HTTP, wertst JSON-Antworten sicher aus und baust URLs mit Query-Parametern korrekt. 14 Min.
- Statuscodes, Zeitlimits und Wiederholversuche Du behandelst Statuscodes gezielt, setzt Zeitlimits und wiederholst nur die Fehler, bei denen ein erneuter Versuch hilft. 15 Min.
- Praxis: Token sicher nutzen und eine eigene API verstehen Du bindest einen API-Token über Umgebungsvariablen ein, maskierst Geheimnisse in Logs und liest eine kleine API mit http.server. 15 Min.
- T Modultest: HTTP und REST-APIs Test
-
04
Datenbanken mit sqlite3
Daten dauerhaft speichern und abfragen: Verbindungen, parametrisierte Abfragen gegen SQL-Injection, Transaktionen, Kontextmanager und eine kleine Inventar-Datenbank.
- sqlite3: Abfragen sicher stellen Du öffnest eine SQLite-Datenbank, stellst Abfragen mit Platzhaltern und verhinderst damit SQL-Injection. 15 Min.
- Transaktionen und Kontextmanager Mehrere Änderungen gehören zusammen oder gar nicht: Du nutzt Transaktionen mit `with conn:` und räumst Verbindungen sauber auf. 15 Min.
- Praxis: Inventar-Datenbank bauen Du baust eine Klasse für eine Inventar-Datenbank mit Kontextmanager, geprüften Eingaben und Auswertung nach Status. 15 Min.
- T Modultest: Datenbanken mit sqlite3 Test
-
05
Testing und Codequalität
Automatisch testen mit unittest, Randfälle finden, pytest und Testabdeckung einordnen, Code mit Linting und Reviews sauber halten.
Modul 5- Warum testen? Erste Tests mit unittest Ein Test ist ein kleines Programm, das dein Programm prüft. Mit unittest und dem Muster Arrange-Act-Assert schreibst du die ersten. 14 Min.
- Randfälle finden und pytest kennenlernen Die meisten Fehler sitzen an den Grenzen. Du testest Grenzwerte gezielt, räumst mit setUp auf und siehst, wie pytest dasselbe knapper schreibt. 14 Min.
- Testabdeckung, Linting und Code-Reviews Abdeckung zeigt, was deine Tests nie ausführen. Linter finden Stilfehler automatisch, Reviews finden, was Werkzeuge nicht sehen. 13 Min.
- Störungsszenario: Die Auswertung zählt falsch Alle Tests sind grün und die Zahlen stimmen trotzdem nicht. Du entwickelst einen strukturierten Diagnoseplan. 12 Min.
- T Modultest: Testing und Codequalität Test
-
06
Type Hints und saubere Struktur
Typen dokumentieren und prüfen lassen, Daten mit dataclasses und Enum modellieren, Projekte sauber gliedern und Konfiguration vom Code trennen.
Modul 6- Type Hints und mypy Type Hints beschreiben, welche Daten eine Funktion erwartet und liefert. Ein Typprüfer wie mypy findet Fehler, bevor das Programm läuft. 13 Min.
- Daten modellieren mit dataclass und Enum Mit dataclass beschreibst du Datensätze knapp, mit Enum legst du erlaubte Werte fest. Beides macht den Code lesbar und fehlerarm. 14 Min.
- Projektstruktur, Verantwortlichkeiten und Konfiguration Ein Projekt wächst gesund, wenn jede Datei und Funktion eine Aufgabe hat, Namen sprechen und Einstellungen nicht im Code stecken. 14 Min.
- Störungsszenario: Das Inventar-Skript startet nicht Nach dem Umzug auf einen neuen Server bricht das Skript beim Start ab. Du liest den Traceback und planst die Diagnose. 12 Min.
- T Modultest: Type Hints und Struktur Test
-
07
Automatisierung und Werkzeuge
Kleine Kommandozeilenwerkzeuge bauen: argparse, pathlib und shutil, Backups mit Aufbewahrung, logging, Umgebungsvariablen, sicheres subprocess und Zeitplanung.
Modul 7- Kommandozeilenwerkzeuge mit argparse Mit argparse bekommt dein Skript Argumente, Optionen und eine automatische Hilfe, ohne dass du Eingaben von Hand zerlegst. 14 Min.
- Dateien mit pathlib und shutil pathlib beschreibt Pfade als Objekte, shutil kopiert und verschiebt. Zusammen ersetzen sie viel fehleranfälliges String-Gebastel. 13 Min.
- Backups mit Zeitstempel und Aufbewahrung Ein Backup-Skript kopiert eine Datei mit Zeitstempel im Namen, überschreibt nie etwas und behält nur die letzten N Sicherungen. 15 Min.
- logging und Umgebungsvariablen Statt print schreibst du Meldungen mit Schweregrad ins Log. Einstellungen und Geheimnisse liest du aus Umgebungsvariablen. 13 Min.
- Programme starten und Skripte planen Mit subprocess startest du andere Programme, aber nie mit einer Shell und ungeprüfter Eingabe. Cron und Aufgabenplanung führen Skripte zeitgesteuert aus. 14 Min.
- Praxisprojekt: Backup-Werkzeug mit Kommandozeile Du baust aus Parser, Sicherung und Rotation ein vollständiges kleines Werkzeug mit klaren Rückgabecodes. 15 Min.
- Störungsszenario: Das Backup läuft nicht mehr Ein geplantes Skript liefert seit Tagen nichts mehr. Du entwickelst einen strukturierten Diagnoseplan, ohne an produktiven Systemen zu raten. 12 Min.
- T Modultest: Automatisierung und Werkzeuge Test
-
08
Abschlussprojekt: Helpdesk-Ticketsystem (CLI)
Du baust ein kleines Ticketsystem für die Kommandozeile mit sqlite3: von den Anforderungen über Planung, Umsetzung und eigene Tests bis zur Dokumentation.
Modul 8- Anforderungen verstehen: Helpdesk-Ticketsystem Bevor du programmierst, klärst du, was gebraucht wird, woran man es prüft und was nicht dazugehört. 14 Min.
- Planung: Datenmodell und Module Du entwirfst das Datenmodell, legst die Aufteilung in Module fest und begründest deine Entscheidungen. 15 Min.
- Umsetzung 1: Tickets anlegen und lesen Du baust die Kernfunktion: Ein Ticket mit geprüften Eingaben speichern und wieder lesen, sicher gegen SQL-Injection. 15 Min.
- Umsetzung 2: Status ändern und suchen Du setzt Geschäftsregeln für Statuswechsel um und baust eine Suche, die auch mit Sonderzeichen sicher funktioniert. 15 Min.
- Umsetzung 3: Statistik Du zählst Tickets mit GROUP BY, füllst fehlende Gruppen mit 0 auf und berechnest einen Anteil ohne Division durch 0. 13 Min.
- Umsetzung 4: Die Kommandozeile Du verbindest alle Funktionen mit einer Kommandozeile, gibst Ergebnisse aus und meldest Fehler mit passenden Rückgabecodes. 15 Min.
- Eigene Tests schreiben Du sicherst das System mit eigenen Tests ab. Das Prüfsystem baut Fehler ein, die deine Tests finden müssen. 15 Min.
- Dokumentation: README und Hilfetexte Gute Dokumentation beantwortet, was das Projekt tut, wie man es startet und warum Entscheidungen so getroffen wurden. 13 Min.
- Projektabgabe und Selbstbewertung Du reichst dein Projekt als Bericht ein, bewertest es selbst anhand der Kriterien und planst deine nächsten Schritte. 15 Min.
- Störungsszenario: Alle Tickets sind plötzlich geschlossen Nach dem Schließen eines einzelnen Tickets sind alle Tickets geschlossen. Du findest den Fehler, behebst ihn und planst die Diagnose. 14 Min.
- T Abschlusscheck: Python in der Praxis Test