code: def url_concat(url, args, keep_existing=True):
      
      if not args:
          return url
  
      if keep_existing:
          if url[-1] not in ('?', '&'):
              url += '&' if ('?' in url) else '?'
          return url + urlencode(args, 1)
      else:
          url, seq, query = url.partition('?')
          query = urlparse.parse_qs(query, True)
          query.update(args)
          return url + '?' + urlencode(query, 1)
docs: Concatenate url and argument dictionary
  
      >>> url_concat("http://example.com/foo?a=b", dict(c="d"))
      'http://example.com/foo?a=b&c=d'
  
      :arg string url: URL being concat to.
      :arg dict args: Args being concat.
      :arg bool keep_existing: (Optional) Whether to keep the args which are
                              alreay in url, default is ``True``.