Модификация шаблона для новых контроллеров пилонов - PullRequest
0 голосов
/ 25 сентября 2010

Я нахожусь в стадии своих проектов Pylons, где я заканчиваю тем, что часто создаю и удаляю контроллеры (вероятно, чаще, чем следовало бы).Я устал от добавления своего собственного импорта и настроек в начало каждого контроллера. Недавно был задан вопрос об изменении шаблона нового контроллера , который частично помог мне не делать этого, но я не понимаю, как файл controller.py_tmpl используется Paster и как я могу это сделать.может сказать Paster, для существующего проекта: «эй, вместо этого используйте этот шаблон!»

Какой вызов мне нужно указать Paster использовать мой шаблон вместо шаблона по умолчанию?1007 *

1 Ответ

1 голос
/ 02 октября 2010

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

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

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

т.е. entry_points = ""» [Paste.paster_command] mycommand = foo.commands.test_command: Test "" "

Создайте каталог с именем 'groups' в '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

После того, как вы запустите 'python setup.pyvelop', вы можете запустить 'paste mycommand bob' и получите вывод 'Hello bob'.

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

...