示例#1
0
def encode_uri(ds_uri, schema_name, project_name=None):
    u = QUrl()
    urlQuery = QUrlQuery()

    u.setScheme("postgresql")
    u.setHost(ds_uri.host())
    if ds_uri.port() != '':
        u.setPort(int(ds_uri.port()))
    if ds_uri.username() != '':
        u.setUserName(ds_uri.username())
    if ds_uri.password() != '':
        u.setPassword(ds_uri.password())

    if ds_uri.service() != '':
        urlQuery.addQueryItem("service", ds_uri.service())
    if ds_uri.authConfigId() != '':
        urlQuery.addQueryItem("authcfg", ds_uri.authConfigId())
    if ds_uri.sslMode() != QgsDataSourceUri.SslPrefer:
        urlQuery.addQueryItem("sslmode", QgsDataSourceUri.encodeSslMode(ds_uri.sslMode()))

    urlQuery.addQueryItem("dbname", ds_uri.database())

    urlQuery.addQueryItem("schema", schema_name)
    if project_name:
        urlQuery.addQueryItem("project", project_name)

    u.setQuery(urlQuery)
    return str(u.toEncoded(), 'utf-8')
def encode_uri(ds_uri, schema_name, project_name=None):
    u = QUrl()
    urlQuery = QUrlQuery()

    u.setScheme("postgresql")
    u.setHost(ds_uri.host())
    if ds_uri.port() != '':
        u.setPort(int(ds_uri.port()))
    if ds_uri.username() != '':
        u.setUserName(ds_uri.username())
    if ds_uri.password() != '':
        u.setPassword(ds_uri.password())

    if ds_uri.service() != '':
        urlQuery.addQueryItem("service", ds_uri.service())
    if ds_uri.authConfigId() != '':
        urlQuery.addQueryItem("authcfg", ds_uri.authConfigId())
    if ds_uri.sslMode() != QgsDataSourceUri.SslPrefer:
        urlQuery.addQueryItem("sslmode", QgsDataSourceUri.encodeSslMode(ds_uri.sslMode()))

    urlQuery.addQueryItem("dbname", ds_uri.database())

    urlQuery.addQueryItem("schema", schema_name)
    if project_name:
        urlQuery.addQueryItem("project", project_name)

    u.setQuery(urlQuery)
    return str(u.toEncoded(), 'utf-8')
示例#3
0
def qgsdatasoruceuri2dict(datasource: str) -> dict:
    """
    From QgsDatasourceUri to dict
    At now only for postgres type layer

    :param qgsdsuri: Instace fo QgsDatasourceUri
    :return: a dict with uri parameters
    :return type: dict
    """

    qgsdsuri = QgsDataSourceUri(datasource)

    # Mapping from QgsDatasourceUri to g3w-admin parameters
    params = {
        'database': 'dbname',
        'host': 'host',
        'password': '******',
        'port': 'port',
        'sslMode': 'sslmode',
        'username': '******',
        'keyColumn': 'key',
        'srid': 'srid',
        'table': 'table',
        'sql': 'sql',
        'schema': 'schema'
    }

    toret = {}
    for k, v in params.items():
        if k == 'sql':
            toret[v] = unicode2ascii(getattr(qgsdsuri, k)())
        elif k == 'sslMode':
            print(qgsdsuri.sslMode())
            toret[v] = qgsdsuri.encodeSslMode(qgsdsuri.sslMode())
        toret[v] = getattr(qgsdsuri, k)()

    return toret