Flask-Erweiterungen können Projekte beschleunigen, erhöhen aber zugleich Abhängigkeit und Wartungsrisiko. Eine professionelle Nutzung beginnt deshalb mit Auswahlkriterien und endet bei Kompatibilitätstests und geregelten Releases.
Neben der fundierten Integration bestehender Pakete wird eine eigene Erweiterung nach dem init_app-Muster entwickelt, paketiert, dokumentiert und gegen mehrere Anwendungsinstanzen sowie Versionen getestet.
Inhaltsübersicht
- Application Factory und mehrfache Instanzen
- Konfiguration und Erweiterungsinitialisierung
- Erweiterungen auswählen und bewerten
- Eigene Erweiterung mit init_app entwickeln
- Paketierung, Dokumentation und Veröffentlichung
- Kompatibilität, Tests und Wartung von Erweiterungen
- pytest-Struktur und Fixtures
- Continuous Integration und Qualitätsgates
- Secrets, Abhängigkeiten und sichere Bereitstellung
- Praxisprojekt und Wissenssicherung
Lernziele
- Erweiterungen nach belastbaren technischen Kriterien auswählen.
- Erweiterungen ohne globalen anwendungsspezifischen Zustand integrieren.
- Eine eigene init_app-basierte Erweiterung entwickeln.
- Ein installierbares Paket mit Dokumentation und Versionierung erstellen.
- Kompatibilität und Wartung über Testmatrix und CI absichern.
Zielgruppe
Erfahrene Flask- und Python-Entwickler, Bibliotheksverantwortliche sowie Teams, die wiederverwendbare Komponenten entwickeln oder fremde Erweiterungen bewerten.
Voraussetzungen
Gute Flask- und Python-Kenntnisse, Erfahrung mit Application Factory und automatisierten Tests. Grundlagen zu Python-Paketen sind hilfreich.
Seminarinhalte
1. Application Factory und mehrfache Instanzen
Die Anwendung wird in einer Fabrikfunktion zusammengesetzt, damit Konfiguration, Tests und Varianten beherrschbar bleiben.
- Schritt 1: create_app mit klarer Reihenfolge für Konfiguration, Erweiterungen, Blueprints und Hooks aufbauen.
- Schritt 2: Testkonfiguration als Mapping übergeben und Dateizugriffe während des Imports vermeiden.
- Schritt 3: Mehrere Anwendungsinstanzen mit getrennten Einstellungen innerhalb eines Prozesses erzeugen.
- Schritt 4: Factory-Erkennung über die Flask-Kommandozeile und Produktionsserver prüfen.
2. Konfiguration und Erweiterungsinitialisierung
Umgebungsabhängige Werte und Erweiterungen werden früh, eindeutig und ohne Importseiteneffekte eingerichtet.
- Schritt 1: Defaults, Umgebungsvariablen und geheime Werte in einer nachvollziehbaren Rangfolge laden.
- Schritt 2: Konfigurationsschlüssel mit Namensräumen versehen und beim Start validieren.
- Schritt 3: Erweiterungsobjekte ungebunden erzeugen und erst in create_app initialisieren.
- Schritt 4: Fehlende oder widersprüchliche Einstellungen mit einem kontrollierten Startabbruch behandeln.
3. Erweiterungen auswählen und bewerten
Zusatzpakete werden nach Wartbarkeit, Kompatibilität, Sicherheitslage und tatsächlichem Nutzen ausgewählt.
- Schritt 1: Funktionale Lücke beschreiben, bevor nach einer Erweiterung gesucht wird.
- Schritt 2: Releaseaktivität, unterstützte Flask-Versionen, Tests und Abhängigkeiten prüfen.
- Schritt 3: Konfigurations- und Lock-in-Risiken mit einer kleinen Spike-Implementierung bewerten.
- Schritt 4: Entscheidung, Alternativen und Ausstiegsstrategie im Projekt festhalten.
4. Eigene Erweiterung mit init_app entwickeln
Wiederverwendbare Funktionalität wird ohne anwendungsspezifischen globalen Zustand gekapselt.
- Schritt 1: Öffentliche API, Konfigurationsnamensraum und Lebenszyklus der Erweiterung definieren.
- Schritt 2: Erweiterungsobjekt ungebunden erzeugen und über init_app registrieren.
- Schritt 3: Zustand in app.extensions ablegen und Zugriff über Kontextobjekte kontrollieren.
- Schritt 4: Mehrere Anwendungsinstanzen und unterschiedliche Konfigurationen parallel testen.
5. Paketierung, Dokumentation und Veröffentlichung
Die Erweiterung wird als installierbares Python-Paket mit klarer Versionierung und belastbarer Dokumentation bereitgestellt.
- Schritt 1: Paketmetadaten, Abhängigkeiten und optionale Extras in pyproject.toml definieren.
- Schritt 2: Öffentliche Klassen, Typinformationen und minimale Anwendungsbeispiele dokumentieren.
- Schritt 3: Wheel und Source Distribution bauen und in einer sauberen Umgebung installieren.
- Schritt 4: Version, Changelog und Freigabeprozess mit automatisierten Prüfungen verbinden.
6. Kompatibilität, Tests und Wartung von Erweiterungen
Unterstützte Python- und Flask-Stände werden in einer Testmatrix nachweisbar abgesichert.
- Schritt 1: Einheiten-, Integrations- und Beispielanwendungstests getrennt strukturieren.
- Schritt 2: Mehrere Konfigurationen und fehlende optionale Abhängigkeiten abdecken.
- Schritt 3: Deprecations früh als Fehler behandeln und Migrationshinweise vorbereiten.
- Schritt 4: Sicherheitsupdates und Abhängigkeitsänderungen mit geregelten Releases ausliefern.
7. pytest-Struktur und Fixtures
Tests erhalten wiederverwendbare, klar begrenzte Setups für Anwendung, Client, CLI und Daten.
- Schritt 1: Testverzeichnisse und Benennung nach pytest-Konventionen anlegen.
- Schritt 2: App-Fixture mit TESTING-Konfiguration und sauberem Teardown erstellen.
- Schritt 3: Client-, Runner- und Daten-Fixtures aus der App-Fixture ableiten.
- Schritt 4: Fixture-Sichtbarkeit und Scope so klein wie möglich halten.
8. Continuous Integration und Qualitätsgates
Jede Änderung durchläuft reproduzierbare Prüfungen, bevor sie zusammengeführt oder ausgeliefert wird.
- Schritt 1: Installation aus Lockfile beziehungsweise definierten Abhängigkeiten in sauberer Umgebung durchführen.
- Schritt 2: Formatierung, Linting, Typprüfung, Tests und Sicherheitsprüfung in getrennten Schritten ausführen.
- Schritt 3: Testmatrix für unterstützte Python- und Flask-Stände festlegen.
- Schritt 4: Abbruchkriterien, Artefakte und nachvollziehbare Berichte als Merge-Gate konfigurieren.
9. Secrets, Abhängigkeiten und sichere Bereitstellung
Sicherheitsniveau umfasst Quellcode, Pakete, Konfiguration und Betriebsweg gemeinsam.
- Schritt 1: Secrets aus Repository und Image entfernen und Rotation vorbereiten.
- Schritt 2: Abhängigkeiten sperren, regelmäßig prüfen und Sicherheitsupdates priorisiert einspielen.
- Schritt 3: Debug-Modus und Entwicklungsserver in Produktion technisch ausschließen.
- Schritt 4: Build-Artefakt, Konfiguration und Laufzeitrechte in der CI kontrollieren.
Praxisprojekt
Eine reale Funktionslücke wird zunächst gegen vorhandene Erweiterungen bewertet. Danach entsteht eine eigene wiederverwendbare Erweiterung, die als Paket gebaut und in mehreren Beispielanwendungen sowie einer CI-Matrix geprüft wird.
Methodik
Kurze fachliche Einordnungen wechseln mit Demonstrationen, geführten Umsetzungen, Fehleranalysen und eigenständigen Übungen. Jede größere Änderung wird durch einen Test, eine Diagnose oder eine betriebliche Prüfroutine abgesichert. Die Arbeitsstände werden schrittweise zu einem durchgängigen Beispielprojekt zusammengeführt.
Fachbereichsleitung / Trainerteam / Ansprechpartner
-

Lucas Beich
Telefon: + 49 (221) 74740055
E-Mail: lucas.beich@seminar-experts.de -

Paul Goldschmidt
Telefon: + 49 (221) 74740055
E-Mail: paul.goldschmidt@seminar-experts.de
Seminardetails
| Dauer: | 3 Tage ca. 6 h/Tag, Beginn 1. Tag: 10:00 Uhr, weitere Tage: 09:00 Uhr |
| Preis: |
Öffentlich oder Live Stream: € 1.797 zzgl. MwSt. Inhaus: € 5.100 zzgl. MwSt. |
| Teilnehmeranzahl: | min. 2 - max. 8 |
| Teilnehmer: | Erfahrene Flask- und Python-Entwickler, Bibliotheksverantwortliche sowie Teams, die wiederverwendbare Komponenten entwickeln oder fremde Erweiterungen bewerten. |
| Voraussetzungen: | Gute Flask- und Python-Kenntnisse, Erfahrung mit Application Factory und automatisierten Tests. Grundlagen zu Python-Paketen sind hilfreich. |
| Standorte: | Stream Live, Inhaus/Firmenseminar, Berlin, Bremen, Darmstadt, Dresden, Erfurt, Essen, Flensburg, Frankfurt, Freiburg, Friedrichshafen, Hamburg, Hamm, Hannover, Jena, Kassel, Köln, Konstanz, Leipzig, Luxemburg, Magdeburg, Mainz, München, Münster, Nürnberg, Paderborn, Potsdam, Regensburg, Rostock, Stuttgart, Trier, Ulm, Wuppertal, Würzburg |
| Methoden: | Vortrag, Demonstrationen, praktische Übungen am System |
| Seminararten: | Öffentlich, Webinar, Inhaus, Workshop - Alle Seminare mit Trainer vor Ort, Webinar nur wenn ausdrücklich gewünscht |
| Durchführungsgarantie: | ja, ab 2 Teilnehmern |
| Sprache: | Deutsch - bei Firmenseminaren ist auch Englisch möglich |
| Seminarunterlage: | Dokumentation auf Datenträger oder als Download |
| Teilnahmezertifikat: | ja, selbstverständlich |
| Verpflegung: | Kalt- / Warmgetränke, Mittagessen (wahlweise vegetarisch) |
| Support: | 3 Anrufe im Seminarpreis enthalten |
| Barrierefreier Zugang: | an den meisten Standorten verfügbar |
| Weitere Informationen unter + 49 (221) 74740055 |
Seminartermine
Die Ergebnissliste kann durch Anklicken der Überschrift neu sortiert werden.
