我正在使用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没有此选项。我怎么能实现类似的东西?
谢谢!
答案 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))