扩展我的应用程序 - 金字塔/ Pylons / Python

时间:2011-09-10 15:31:38

标签: python pylons pyramid

关于扩展我的申请的简单问题

假设我有一个“主应用程序”,在这个应用程序中,我在_init_.py文件中有以下内容:

config.add_route('image_upload', '/admin/image_upload/', 
    view='mainapp.views.uploader',
    view_renderer='/site/upload.mako')

在views.py中我有:

def uploader(request):
    # some code goes here
    return {'xyz':xyz}

现在,当我创建一个新的应用程序,并且我想扩展它时,使用上面的视图和路由:

在新的应用程序_init_.py文件中,我将手动复制config.add_route代码:

config.add_route( 'image_upload', '/admin/image_upload/', 
   view='mainapp.views.uploader', 
   view_renderer='mainapp:templates/site/upload.mako'
 )

这就是我需要做的一切吗?从这个我的应用程序能够使用主应用程序中的视图和模板,还是我错过了其他东西?

感谢阅读!

1 个答案:

答案 0 :(得分:2)

您无需复制代码即可执行此操作。使用Configurator.include方法在新应用程序中包含“主应用程序”配置。文档很好地解释了herehere这两个问题,但实质上,如果您在可调用内部声明主要应用程序配置:

def main_app_config(config):

    config.add_route('image_upload', '/admin/image_upload/', 
    view='mainapp.views.uploader',
    view_renderer='/site/upload.mako')

然后,您可以将主应用程序包含在新应用程序的配置中,如下所示:

from my.main.app import main_app_config

# do your new application Configurator setup, etc.
# then "include" it.

config.include(main_app_config)

# continue on with your new app configuration