Ich schreibe ein Python-Skript mit der QGIS-API. Ich muss Ergebnisse aus der Postgres-Datenbanktabelle erhalten. Die Tabelle enthält Geometriefelder und andere Nichtgeometriefelder.
Ich möchte SQL-Abfragen für Felder ohne Geometrie ausführen und Ergebnisse in meinem Code erhalten. Wie macht man das? Gibt es eine Klasse dafür?
Ich kenne mich mit QgsDataSourceURI
Klasse aus, aber soweit ich weiß, werden nur Ergebnisse aus Geometriefeldern erzielt.
qgis
postgresql
pyqgis
M Omayr
quelle
quelle
Antworten:
1) Mit PyQt4.QtSql: Gary Sherman zeigt, wie eine räumliche Tabelle beim Erstellen einer PostgreSQL-Verbindung aus einer QGIS-Layer-Datenquelle abgefragt wird :
Und Sie können alle anderen Tabellen / Ansichten (räumlich oder nicht räumlich) auf ähnliche Weise öffnen:
2) Oder Sie können das Standard-Python-Modul für PostgreSQL / PostGIS verwenden: Psycopg2 :
Mit einer nicht räumlichen Tabelle oder Ansicht und dem Ergebnis als Wörterbuch:
quelle
Dies hängt davon ab, welche Datenbank Sie verwenden. Wenn es sich um Postgresql handelt, müssen Sie die PostgreSQL + Python-Bibliothek psycopg2 installieren und importieren
zur Installation verwenden:
oder:
Befolgen Sie dieses Tutorial oder die Grundlagen
quelle