Как я могу сгенерировать абсолютный URL для контроллера Pylons? - PullRequest
1 голос
/ 13 октября 2010

Мне нужно сгенерировать URL для использования в качестве обратного вызова во внешней системе в моем приложении пилонов. Это требует, чтобы я указал путь к контроллеру pylons-app-относительный (генерируемый методом url:

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

Однако мне нужен весь URL; имя хоста, относительные пути (в случае mod_wsgi, где путь может включать другие части из конфигурации сервера) & c.

Как я могу получить это?

Ответы [ 2 ]

1 голос
/ 09 декабря 2010

Вы должны попросить url () создать квалифицированный URL, например:

>>> url(controller='rpc/sessions', action='index')
'/rpc/sessions'
>>> url(controller='rpc/sessions', action='index', qualified=True)
'http://localhost/rpc/sessions'
1 голос
/ 14 октября 2010

Вы можете использовать функцию маршрутизации 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)

Конечно, это работает, только если хост совпадает с хостом запроса.

...