Estou escrevendo um script python usando a API QGIS. Eu tenho que obter resultados da tabela de banco de dados postgres. A tabela possui campo de geometria e outros campos que não são de geometria.
Eu quero executar consultas SQL em campos não-geométricos e obter resultados no meu código. Como fazer isso? Existe alguma classe para fazer isso?
Eu sei sobre QgsDataSourceURI
classe, mas, tanto quanto sei, só obtém resultados dos campos de geometria.
qgis
postgresql
pyqgis
M Omayr
fonte
fonte
Respostas:
1) Com PyQt4.QtSql: Gary Sherman mostra como consultar uma tabela espacial em Criando uma conexão PostgreSQL a partir de uma camada de dados QGIS Layer :
E você pode abrir todas as outras tabelas / visualizações (espaciais ou não espaciais) da mesma forma:
2) Ou você pode usar o módulo Python padrão para PostgreSQL / PostGIS: Psycopg2 :
Com uma tabela ou exibição não espacial e o resultado como um dicionário:
fonte
Depende do banco de dados que você está usando. Se for o Postgresql, você precisará instalar e importar o psycopg2 na biblioteca PostgreSQL + Python
para instalar use:
ou:
Siga este tutorial , ou então, para o básico
fonte