[Web-SIG] [proposal] wsgiref.util.abs_url

Manlio Perillo manlio_perillo at libero.it
Tue May 6 12:40:51 CEST 2008


Phillip J. Eby ha scritto:
> At 06:27 PM 5/5/2008 +0200, Manlio Perillo wrote:
>> Phillip J. Eby ha scritto:
>>> I think that it doesn't accept a relative URL, it accepts an absolute 
>>> path.
>>
>> What do you mean?
>>
>>  environ = {}
>>  setup_testing_defaults(environ)
>>
>>  url = '/a/b/'
> 
> That's a relative URL that's also an absolute path.  Try a relative URL 
> like './a/b', or just plain 'a/b'.
> 
> 
> 
>>    self.failUnlessEqual(
>>       util.abs_url(environ, url), 'http://127.0.0.1/a/b/')
>>
>>> I also think that using urlparse.urljoin() with either request_uri() 
>>> or application_uri() would be a clearer (and tested) way to obtain an 
>>> absolute URL, and more generally useful.
>>
>> But application_uri also includes SCRIPT_NAME.
> 
> Yes, and you might want to use it as the base against which a relative 
> URL will be resolved -- i.e. an application-relative URL, vs. a 
> request-relative URL.  In fact, application_uri() would probably be 
> *more* useful, since if you want a request-relative URL, there's no need 
> to turn it into an absolute URL, since you could just use it in its 
> relative form.
> 

Yes, but this is not always the case.

> Note, however, that in either case, using a relative URL that's an 
> absolute path (e.g. '/a/b'), will still produce the same result as your 
> function would.  It's just that urljoin also works properly for all 
> kinds of relative urls, not just the absolute-path subset.
>

You are right, thanks.


Regards  Manlio Perillo


More information about the Web-SIG mailing list