Web trifft Desktop
27.03.2025 , HS3 (S1)

Mit realen Anwendungsfällen in QGIS und QField zeigen wir, wie das Django-Framework konsumierbare Geodatenebenen als OGC API - Features-Endpunkte erzeugen kann. Indem sowohl das Datenmodell als auch die Geschäftslogik in Python mit dem Django-ORM definiert werden, lassen sich Herausforderungen umgehen, die häufig bei herkömmlichen Datenbankansätzen auftreten. Auf diese Weise demonstrieren wir, wie die Nutzung von Django zu interessanten Perspektiven für solche Anwendungen führen kann.


In der GIS-Welt bedeutet der Aufbau einer Geschäftsanwendungslogik oft die Verwendung eines "Thick Database"-Ansatzes. Das heisst, die Geschäftslogik wird in SQL geschrieben und in der Datenbank ausgeführt oder im Frontend implementiert. Während dieser Ansatz einfach einzurichten ist, hat er insbesondere für Entwickler und Wartungsverantwortliche solcher Anwendungen Schwächen gezeigt. Versionskontrolle, Änderungsmanagement, Modularisierung oder Anpassung, Unit-Tests und die Lesbarkeit des Codes sind einige der Hauptprobleme.

Wir werden die Verwendung von Django, einem Python-Web-Framework, demonstrieren, um konsumierbare Geodatenebenen zu erstellen und Django-Modelle zur Definition des Datenmodells und der Geschäftslogik zu verwenden. Dazu haben wir eine Bibliothek namens Django-OAPIF entwickelt, die auf dem Django REST Framework basiert. Mit einem einfachen Decorator um ein Django-Modell herum wird sie OGC API - Features-Endpunkte bereitstellen, den OGC-Standard zur Veröffentlichung von Vektordaten über eine REST-API. Die Bibliothek ermöglicht CRUD-Operationen, Filterung und kann in einem Desktop-Client wie QGIS oder in Webmapping Bibliotheken wie OpenLayers verwendet werden.

Wir werden einen Vergleich der Ansätze mit Django-OAPIF und PostGIS nebeneinander anstellen und die Herausforderungen, denen wir derzeit begegnen, insbesondere in Bezug auf die Leistung, sowie die Chancen, die die Nutzung von Django für GIS-Anwendungen eröffnet, diskutieren.

Seit über 10 Jahren QGIS Kernenetwickler und erster Hauptentwickler von QField.
Als CTO von OPENGIS.ch halte ich die Fäden von Desktop, Web und Mobilentwicklung in unserem Entwicklerteam zusammen.
Seit 20 Jahren faszinieren mich die Möglichkeiten von Open-Source Entwicklung und wie man dadurch einen nachhaltigen Mehrwert generieren kann.