修改新Pylons控制器的模板

时间:2010-09-24 23:48:23

标签: python pylons paste paster

我正处于我的Pylons项目中的一个点,我最终经常创建和删除控制器(可能比我应该更频繁)。我厌倦了将自己的导入和调整添加到每个控制器的顶部。 There was a recent question about modifying the new controller template让我不必这样做 - 但我不明白paster如何使用controller.py_tmpl文件,以及如何告诉Paster,对于现有项目,“嘿,改用这个模板!“

我需要什么调用来告诉Paster使用我的模板而不是默认模板?

1 个答案:

答案 0 :(得分:1)

Pylons通过添加粘贴命令来创建新的控制器和项目。这些命令在setup.py中定义,您可以添加新命令。

例如(这取自Paste docs)假设您有一个名为Foo的项目,该项目也在名为foo的包中。

在setup.py中,将'foo'添加到'paster_plugins'列表中 然后向entry_points添加一个新命令。

即     entry_points = “””     [paste.paster_command]     mycommand = foo.commands.test_command:测试     “”“

在'foo'下创建一个名为'commands'的目录,添加一个__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.py develop'后,你现在可以运行'paste mycommand bob',你应该得到'Hello bob'输出。

要了解Pylons如何添加它以创建新文件等,请查看pylons / commands.py,它们具有创建可以复制的新控制器和RestControllers的命令。