我需要生成一个URL,用作我的pylons应用程序中外部系统的回调。这需要我提供pylons-app-relative控制器路径(由url
方法生成:
>>> relative_url = url(controller='my_cont', action='callback', id=generated_id)
>>> print relative_url
/my_cont/callback/1234
但是,我需要整个网址;主机名,相对路径(如果是mod_wsgi,路径可能包含服务器配置中的其他部分)& c。
我怎么能得到它?
答案 0 :(得分:1)
您可以使用路由功能url_for,它接受主机的参数:
from routes import url_for
from pylons import request
abs_url = url_for(host=request.host,
controller="my_cont",
action="callback",
id=gen_id)
当然,这仅在主机与请求的相同时才有效。
答案 1 :(得分:1)
您应该让url()生成如下所示的限定网址:
>>> url(controller='rpc/sessions', action='index')
'/rpc/sessions'
>>> url(controller='rpc/sessions', action='index', qualified=True)
'http://localhost/rpc/sessions'