J'écris un script python à l'aide de l'API QGIS. Je dois obtenir les résultats de la table de base de données postgres. La table a un champ géométrique et d'autres champs non géométriques.
Je souhaite effectuer des requêtes SQL sur des champs non géométriques et obtenir des résultats dans mon code. Comment faire ça? Y a-t-il une classe pour le faire?
Je connais la QgsDataSourceURI
classe, mais pour autant que je sache, elle n'obtient que des résultats des champs de géométrie.
qgis
postgresql
pyqgis
M Omayr
la source
la source
Réponses:
1) Avec PyQt4.QtSql: Gary Sherman montre comment interroger une table spatiale dans Création d'une connexion PostgreSQL à partir d'une source de données de couche QGIS :
Et vous pouvez ouvrir toutes les autres tables / vues (spatiales ou non spatiales) de la même manière:
2) Ou vous pouvez utiliser le module Python standard pour PostgreSQL / PostGIS: Psycopg2 :
Avec une table ou une vue non spatiale et le résultat sous forme de dictionnaire:
la source
Cela dépend de la base de données que vous utilisez. S'il s'agit de Postgresql, vous devez installer et importer psycopg2 la bibliothèque PostgreSQL + Python
pour installer utiliser:
ou:
Suivez ce tutoriel , sinon, pour les bases
la source