【问题标题】:Router lazy loading路由器延迟加载
【发布时间】:2015-03-28 19:38:41
【问题描述】:

我正在使用 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 似乎没有这个选项。我怎样才能实现类似的东西?

谢谢!

【问题讨论】:

    标签: python routing


    【解决方案1】:

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

    from importmodule import all_urls
    
    ...
    install("HomePage", "/", WelcomeHandler)    
    
    def install(name, path, callable):
        all_urls.append(url(path, callable, name=name))
    

    【讨论】:

      猜你喜欢
      • 2017-05-17
      • 1970-01-01
      • 2020-05-31
      • 1970-01-01
      • 2017-05-25
      • 2023-04-08
      • 1970-01-01
      • 1970-01-01
      • 2017-08-21
      相关资源
      最近更新 更多