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