Saya sedang menulis skrip python menggunakan QGIS API. Saya harus mendapatkan hasil dari tabel database postgres. Tabel memiliki bidang geometri dan bidang non-geometri lainnya.
Saya ingin melakukan query SQL pada bidang non-geometri dan mendapatkan hasil dalam kode saya. Bagaimana cara melakukannya? Apakah ada kelas untuk melakukannya?
Saya tahu tentang QgsDataSourceURI
kelas tetapi sejauh yang saya tahu itu hanya mendapatkan hasil dari bidang geometri.
qgis
postgresql
pyqgis
M Omayr
sumber
sumber
Jawaban:
1) Dengan PyQt4.QtSql: Gary Sherman menunjukkan cara melakukan kueri tabel spasial dalam Membuat Koneksi PostgreSQL Dari Datasource Lapisan QGIS :
Dan Anda dapat membuka semua tabel / tampilan lainnya (spasial atau non spasial) dengan cara yang sama:
2) Atau Anda dapat menggunakan modul Python standar untuk PostgreSQL / PostGIS: Psycopg2 :
Dengan tabel atau tampilan non spasial dan hasilnya sebagai kamus:
sumber
Itu tergantung pada DB apa yang Anda gunakan. Jika Postgresql, Anda harus menginstal dan mengimpor psycopg2 perpustakaan PostgreSQL + Python
untuk menginstal gunakan:
atau:
Ikuti tutorial ini , atau yang lain, untuk dasar-dasarnya
sumber