Porting a Legacy Pylons Application Piecemeal¶
你想从 Pylons 1.0搬到 Pyramid ,但你不能很快管理一个批发港口。你想知道在现有的 Pylons 项目中开始使用 Pyramid 的某些部分是否可行。
一个想法是使用一个 Pyramid “未找到视图”,该视图委托给现有的 Pylons 应用程序,并分段端口:
1# ... obtain pylons WSGI application object ...
2from mypylonsproject import thepylonsapp
3
4class LegacyView(object):
5 def __init__(self, app):
6 self.app = app
7 def __call__(self, request):
8 return request.get_response(self.app)
9
10if __name__ == '__main__':
11 legacy_view = LegacyView(thepylonsapp)
12 config = Configurator()
13 config.add_view(context='pyramid.exceptions.NotFound', view=legacy_view)
14 # ... rest of config ...
在这一点上,只要 Pyramid 不能为请求提供服务,因为URL与任何内容都不匹配,它就将调用pylons应用程序作为回退,这将正常返回内容。在这一点上,您可以开始逐步将逻辑从 Pylons 应用程序移动到 Pyramid 中,直到您移植了所有内容。