Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何为挂架控制器生成绝对url?_Python_Pylons_Mod Wsgi - Fatal编程技术网

Python 如何为挂架控制器生成绝对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的情况下,

我需要在我的pylons应用程序中生成一个URL,用作外部系统中的回调。这需要我提供两个挂架应用程序相对控制器路径(由
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'