Есть ли способ получить абсолютный URL-адрес приложения пирамиды в функции main ()? Я хочу добавить его в глобальные настройки, чтобы его можно было вызывать везде (в шаблонах и файлах js). В документах-пирамидах есть некоторые функции, которые могут помочь, но всем им нужен объект запроса и они должны вызывать представление. Спасибо.
пирамида: получить абсолютный URL-адрес приложения
Ответы (2)
Pyramid (как и большинство WSGI-приложений) можно монтировать на любой домен и префикс URL. Таким образом, само приложение на самом деле не знает, за какие URL-адреса оно отвечает, если только вы не запрограммируете это специально в своем приложении (например, в настройках INI).
Вот почему существует request.application_url... потому что application_url может быть разным для каждого запроса в зависимости от того, сколько разных доменов и префиксов URL у вас есть, которые проксируют запросы к вашему приложению.
Я просто получаю полный маршрут для своего индексного маршрута, в моем случае «домой»:
Я установил это в моем основном шаблоне mako оболочки, чтобы все мои вызовы JS могли ссылаться на него, чтобы построить правильный путь для вызовов ajax и т. д.
<script type="text/javascript" charset="utf-8">
<%
app_url = request.route_url('home').rstrip('/')
%>
APP_URL = '${app_url}';
</script>
request.application_url
также доступен. Я думаю, что дело здесь в том, что объект запроса доступен в ваших шаблонах, а не только в ваших представлениях.
- person Michael Merickel; 15.06.2011