On 27 Mar 2014, at 6:49 AM, Louis Amon <moo...@msn.com> wrote:
> I'm trying to use the URL() function to connect to an external website's API, 
> thus benefitting from web2py's HTML entity encoding feature.
> 
> I wrote something like this :
> 
> URL(scheme='http', domain='www.example.org', a='API', vars={'locality':'some, 
> city'})
> 
> and found that the encoded URL turns out like this : 
> http://www.example.org/APP_NAME/API?locality=some%2C+city
> 
> With APP_NAME being my current application in web2py...
> 
> 
> I found a monkeypatch solution like this :
> URL(scheme='http', domain='www.example.org', a='API', c=' ', f=' ', 
> vars={'locality':'some, city'})
>  
> Which gives me an ugly but functional URL :
> http://www.example.org/API/ / ?locality=some%2C+city
> 
> 
> 
> Is there a more elegant solution to this ?
> 
> 

URL() doesn't anticipate being used to generate external URLs, only web2py 
URLs. You'd be better off, I think, writing your own utility routine to do what 
you're after. urllib.urlencode does the magic for your query string (vars).

So for your example, something like:

encodeURL("http://www.example.org";, path=['API'], query={'locality':'some, 
city'})

...would be pretty trivial to write (path is a list of URL path elements to be 
suitable encoded and joined with '/').

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to