Estoy escribiendo un script de Python usando la API QGIS. Tengo que obtener resultados de la tabla de base de datos postgres. La tabla tiene un campo de geometría y otros campos que no son de geometría.
Quiero realizar consultas SQL en campos no geométricos y obtener resultados en mi código. ¿Como hacer esto? ¿Hay alguna clase para hacerlo?
Sé sobre la QgsDataSourceURI
clase, pero hasta donde sé, solo obtiene resultados de los campos de geometría.
qgis
postgresql
pyqgis
M Omayr
fuente
fuente
Respuestas:
1) Con PyQt4.QtSql: Gary Sherman muestra cómo consultar una tabla espacial en Crear una conexión PostgreSQL a partir de una fuente de datos de capa QGIS :
Y puede abrir todas las otras tablas / vistas (espaciales o no espaciales) de manera similar:
2) O puede usar el módulo Python estándar para PostgreSQL / PostGIS: Psycopg2 :
Con una tabla o vista no espacial y el resultado como un diccionario:
fuente
Depende de qué base de datos esté utilizando. Si es Postgresql, debe instalar e importar psycopg2 la biblioteca PostgreSQL + Python
para instalar usar:
o:
Siga este tutorial , o bien, para lo básico
fuente