Web trifft Desktop

Matthias Kuhn

Video Player
Playlists: 'fossgis2025' videos starting here / audio

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.

Licensed to the public under https://creativecommons.org/licenses/by/4.0/

Download

Embed

Share:

Tags