关于扩展我的申请的简单问题
假设我有一个“主应用程序”,在这个应用程序中,我在_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'
)
这就是我需要做的一切吗?从这个我的应用程序能够使用主应用程序中的视图和模板,还是我错过了其他东西?
感谢阅读!
答案 0 :(得分:2)
您无需复制代码即可执行此操作。使用Configurator.include方法在新应用程序中包含“主应用程序”配置。文档很好地解释了here和here这两个问题,但实质上,如果您在可调用内部声明主要应用程序配置:
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