2010-10-13 60 views
1

我需要在我的pylons应用程序中生成一个用作外部系统回调的URL。这需要我提供两个挂架应用内相对控制器路径(如通过url方法生成:如何为Pylons控制器生成绝对URL?

>>> relative_url = url(controller='my_cont', action='callback', id=generated_id) 
>>> print relative_url 
/my_cont/callback/1234 

然而,我需要整个URL;主机名,相对路径(在的mod_wsgi的情况下,路径,其中可能包括从服务器配置的其他部分)&ç

我怎样才能像

回答

1

你应该问的网址()来生成符合要求的网址是这样的:

>>> url(controller='rpc/sessions', action='index') 
'/rpc/sessions' 
>>> url(controller='rpc/sessions', action='index', qualified=True) 
'http://localhost/rpc/sessions' 
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) 

当然,这只适用于主机与请求相同的情况。

相关问题