如何为 Pylons 控制器生成绝对 URL?

发布于 2024-09-26 23:56:34 字数 361 浏览 5 评论 0原文

我需要生成一个 URL,用作我的 pylons 应用程序中外部系统的回调。这要求我提供 pylons-app-relative 控制器路径(由 url 方法生成:

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

但是,我需要整个 URL;主机名、相对路径(在 mod_wsgi 的情况下,路径可能包括服务器配置的其他部分)&c.

我怎样才能得到它?

I need to generate a URL for use as a callback in an external system in my pylons application. This requires me to provide both the pylons-app-relative controller path (as generated by the url method:

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

However, I need the whole URL; hostname, relative paths (in case of mod_wsgi, where the path might include other parts from server configuration) &c.

How can I get that?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

我三岁 2024-10-03 23:56:34

您应该要求 url() 生成合格的 URL,如下所示:

>>> url(controller='rpc/sessions', action='index')
'/rpc/sessions'
>>> url(controller='rpc/sessions', action='index', qualified=True)
'http://localhost/rpc/sessions'

You should ask url() to generate qualified URL like this:

>>> url(controller='rpc/sessions', action='index')
'/rpc/sessions'
>>> url(controller='rpc/sessions', action='index', qualified=True)
'http://localhost/rpc/sessions'
牵你的手,一向走下去 2024-10-03 23:56:34

你可以使用routes函数url_for,它接受一个host参数:

from routes import url_for
from pylons import request

abs_url = url_for(host=request.host,
                  controller="my_cont",
                  action="callback",
                  id=gen_id)

当然,这只有在host与请求的主机相同的情况下才有效。

You can use the routes function url_for, which takes a parameter for host:

from routes import url_for
from pylons import request

abs_url = url_for(host=request.host,
                  controller="my_cont",
                  action="callback",
                  id=gen_id)

Of course, this only works if the host is the same as the request's.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文