Расширение моего приложения - Pyramid / Pylons / Python - PullRequest
0 голосов
/ 10 сентября 2011

Простой вопрос о расширении моего приложения

Допустим, у меня есть «Основное приложение», и в этом приложении у меня есть следующее в файле _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 Ответ

2 голосов
/ 10 сентября 2011

Вам не нужно копировать свой код, чтобы сделать это. Используйте метод Configurator.include , чтобы включить конфигурацию «Основное приложение» в новое приложение. Документация объясняет это довольно хорошо как здесь , так и здесь , но, по сути, если вы объявляете конфигурацию своих основных приложений внутри вызываемой:

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
...