2010-09-24 3 views
0

Я нахожусь в точке своих проектов Pylons, где я часто создаю и удаляю контроллеры (возможно, чаще, чем должен). Я устал добавлять свой собственный импорт и настройки на вершину каждого контроллера. There was a recent question about modifying the new controller template, который заставил меня отчасти отказаться от этого - но я не понимаю, как файл controller.py_tmpl используется пастером, и как я могу сказать Пастеру, для существующего проекта, «эй, используйте это шаблон! "Изменение шаблона для новых контроллеров пилонов

Какой вызов я должен сообщить Пастеру, чтобы использовать мой шаблон вместо стандартного?

ответ

1

Пилоны создают новые контроллеры и проекты, добавляя команду для вставки. Команды определены в файле setup.py, и вы можете добавлять новые команды.

Например (это взято из пасты docs) позволяет предположить, что у вас есть проект под названием Foo, который находится в пакете, также называемом foo.

В setup.py добавить 'foo' в список 'paster_plugins' Затем добавьте новую команду в entry_points.

т.е. entry_points = "" " [paste.paster_command] МояКоманда = foo.commands.test_command: Тест """

Создайте директорию с именем 'команд' под 'Foo', добавьте __init .py__ файл и создать файл с именем test_command.py

В файле добавить

from paste.script import command 

class TestCommand(command.Command): 

    max_args = 1 
    min_args = 1 

    usage = "NAME" 
    summary = "Say hello!" 
    group_name = "My Package Name" 

    parser = command.Command.standard_parser(verbose=True) 
    parser.add_option('--goodbye', 
         action='store_true', 
         dest='goodbye', 
         help="Say 'Goodbye' instead") 

    def command(self): 
     name = self.args[0] 
     if self.verbose: 
      print "Got name: %r" % name 
     if self.options.goodbye: 
      print "Goodbye", name 
     else: 
      print "Hello", name 

После запуска «питон setup.py разработки» вы можете запустить «вставить mycomma nd bob ', и вы должны получить вывод «Hello bob».

Чтобы увидеть, как Pylons добавляет это для создания новых файлов и т. Д., Смотрите в pylons/commands.py, у них есть команды для создания новых контроллеров и RestControllers, которые вы можете скопировать.

+0

Этот ответ заставил меня пройти мимо той части, на которой я застрял. Спасибо. –