[QGIS-Developer] Function to generate uri from settings in QGIS

Alessandro Pasotti apasotti at gmail.com
Sat Jan 9 07:35:45 PST 2021


Hi Bo,

you may have a look to
https://qgis.org/pyqgis/master/core/QgsProviderRegistry.html?highlight=decodeuri#qgis.core.QgsProviderRegistry.decodeUri
and encodeUri.

Or better: the connections API
https://qgis.org/pyqgis/master/core/QgsAbstractProviderConnection.html



On Sat, Jan 9, 2021 at 2:03 PM Bo Victor Thomsen
<bo.victor.thomsen at gmail.com> wrote:
>
> Ok, this has me stumped.
>
> I know, that I can generate a database URI like this  (example from cookbook):
>
> uri = QgsDataSourceUri()
> # set host name, port, database name, username and password
> uri.setConnection("localhost", "5432", "dbname", "johny", "xxx")
> # set database schema, table name, geometry column and optionally
> # subset (WHERE clause)
> uri.setDataSource("public", "roads", "the_geom", "cityid = 2643")
>
> vlayer = QgsVectorLayer(uri.uri(False), "layer name you like", "postgres")
>
>
> But I would like to use information from a already defined Datasource connection from the Datamanager dialog.
>
> I suspect, that there must be a "QgsSettingsConvertToUri_or_whatever_it_is_called()" function that uses a  QGS settings address  (ex. like "/PostgreSQL/connections/MyDatabase" for a Postgresql database connection)  as input and automatically convert the settings values to a URI string.
>
> Is there anyone, that can point me in the right direction ?
>
> --
>
> Med venlig hilsen / Kind regards
>
> Bo Victor Thomsen
>
> _______________________________________________
> QGIS-Developer mailing list
> QGIS-Developer at lists.osgeo.org
> List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer



-- 
Alessandro Pasotti
QCooperative:  www.qcooperative.net
ItOpen:   www.itopen.it


More information about the QGIS-Developer mailing list