Python 如何为挂架控制器生成绝对url?
我需要在我的pylons应用程序中生成一个URL,用作外部系统中的回调。这需要我提供两个挂架应用程序相对控制器路径(由Python 如何为挂架控制器生成绝对url?,python,pylons,mod-wsgi,Python,Pylons,Mod Wsgi,我需要在我的pylons应用程序中生成一个URL,用作外部系统中的回调。这需要我提供两个挂架应用程序相对控制器路径(由url方法生成: >>> relative_url = url(controller='my_cont', action='callback', id=generated_id) >>> print relative_url /my_cont/callback/1234 但是,我需要完整的URL;主机名、相对路径(在mod_wsgi的情况下,
url
方法生成:
>>> relative_url = url(controller='my_cont', action='callback', id=generated_id)
>>> print relative_url
/my_cont/callback/1234
但是,我需要完整的URL;主机名、相对路径(在mod_wsgi的情况下,路径可能包括服务器配置的其他部分)&c
我怎样才能得到它?您可以使用路由函数url\u,它为主机获取一个参数:
from routes import url_for
from pylons import request
abs_url = url_for(host=request.host,
controller="my_cont",
action="callback",
id=gen_id)
当然,这仅在主机与请求的主机相同时才有效。您应该要求url()生成符合条件的url,如下所示:
>>> url(controller='rpc/sessions', action='index')
'/rpc/sessions'
>>> url(controller='rpc/sessions', action='index', qualified=True)
'http://localhost/rpc/sessions'