1 votos

Verificar la conexión PostGIS, el nombre de usuario y la contraseña

Escribí el código siguiente, pero necesito que la conexión PostGIS sea verificada, para estar seguro de que el nombre de usuario y la contraseña son correctos. He intentado esto: ¿Cómo acceder a las credenciales del usuario en la conexión a la base de datos? pero no ha funcionado.

Estoy utilizando QGIS 3.8.3

uri = QgsDataSourceUri()
uri.setConnection('LPOSTDES-CL2', '5432', 'ugpi', None, None)
connInfo = uri.connectionInfo()
(success ,user, passwd) = QgsCredentials.instance().get(connInfo, None, None)
if success:
    QgsCredentials.instance().put(connInfo, user, passwd)
uri.setConnection('LPOSTDES-CL2', '5432', 'ugpi', user, passwd)

3voto

J. Monticolo Puntos 46

Puede comprobarlo directamente con QtSql, vea el siguiente código de Python3 :

from PyQt5.QtSql import QSqlDatabase

host = "LPOSTDES-CL2"
port = 5432
database = "ugpi"

db = QSqlDatabase.addDatabase("QPSQL")
db.setHostName(host)
db.setPort(port)
db.setDatabaseName(database)

(success, user, passwd) = QgsCredentials.instance().get(connInfo, None, None)
if success:
    db.setUserName(user)
    db.setPassword(passwd)

if db.open():
    print("Connection successful !")
else:
    print("Connection failed.")

Aquí sólo copio el método sin tener connInfo y no hay realmente ninguna razón para usar QgsCredentials aquí, simplemente un diálogo con dos widgets QLineEdit hará las cosas.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X