金字塔只是WSGI应用程序。这意味着它取决于HTTP_HOST环境键(由Host标头设置)来确定应用程序的主机。都是相对的。有趣的是,金字塔对其接受的内容没有任何限制,因此世界就是您的牡蛎,您可以设置它以将内容限制为任意范围。当然,这首先是将您的Web服务器配置为供您的应用程序使用的主机。
假设您使用的是URL分配,则可能需要设计一些自定义路由谓词,以检查所需
request.host值。
False从该谓词返回将阻止该路由将请求与该主机匹配。
这是一个很大的主题,因此如果您提供更多细节,可能会有所帮助。例如,由于金字塔是相对的,您可能需要通过“预生成器”来完成您可能要从“
example.com”生成的用于将某人重定向到“ sub.example.com”的任何URL。
def pregen(request, elements, kw): kw['_app_url'] = 'http://sub.example.com' return elements, kwdef req_sub(info, request): return request.host.startswith('sub')config.add_route('sub_only', '/', custom_predicates=(req_sub,), pregenerator=pregen)config.add_route('foo', '/foo')config.add_view(view, route_name-'foo')def view(request): # redirect the user to "http://sub.example.com", regardless of whether # request.host is "example.com" or "sub.example.com" return HTTPFound(request.route_url('sub_only'))
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)