路由器延迟加载

时间:2015-01-29 14:25:34

标签: python routing

我正在使用wheezy web框架,但我猜这个概念可以应用于任何框架。

我将我的网址列在一个列表中:

import WelcomeHandler
import OtherHandler

all_urls = [
    url('/', WelcomeHandler, name='HomePage'),
    url('/some-other-page', OtherHandler, name='OtherPage'),
    ...
]

为了使这项工作,我需要将所有请求处理程序导入到文件中。如果你有很多页面,这些导入可能会开始失控,除了你在一个混乱的文件中有很多导入的事实,我猜测性能方面不是最好的解决方案。

延迟导入这些请求处理程序的常用方法是什么?例如,WebApp2框架允许您将它们指定为带有点表示法的字符串,并将其计算为实际文件:http://webapp-improved.appspot.com/guide/routing.html#lazy-handlers

从文档中可以看出,wheezy web没有此选项。我怎么能实现类似的东西?

谢谢!

1 个答案:

答案 0 :(得分:2)

我不熟悉wheezy但是如果您只需要调用url()并将其添加到列表中,我的方法将是您的处理程序模块中的install方法:

from importmodule import all_urls

...
install("HomePage", "/", WelcomeHandler)    

def install(name, path, callable):
    all_urls.append(url(path, callable, name=name))
相关问题