金字塔:如何指定应用程序的基本URL

时间:2013-03-14 06:08:05

标签: python config pyramid

假设我的应用在域www.example.com提供。

我应该如何(在哪里?)在Pyramid配置文件中指定它,以便像request.route_url这样的函数自动选择它并生成正确的URL。

(我认为[server:main]不适合这个地方)

2 个答案:

答案 0 :(得分:4)

网址生成函数route_urlstatic_urlresource_url都依赖于WSGI环境字典,它们从中获取生成完整网址所需的所有必要参数。

因此,一种方法是在请求创建时修改WSGI环境字典,并修改所需的参数。事件非常适合这种事情:

from pyramid.events import NewRequest
from pyramid.events import subscriber

@subscriber(NewRequest)
def mysubscriber(event):
    event.request.environ['HTTP_HOST'] = 'example.com'

在此之后,route_urlexample.com作为基本网址。

答案 1 :(得分:1)

是的,正确的反向代理将沿着适当的标头转发到您的wsgi服务器。请参阅金字塔食谱中的nginx食谱。