2010-09-24 51 views
0

我在我的Pylons項目中經常發現和刪除控制器(可能比我應該更頻繁)。我厭倦了將自己的導入和調整添加到每個控制器的頂部。 There was a recent question about modifying the new controller template,這讓我無法做到這一點 - 但我不明白paster使用controller.py_tmpl文件的方式,以及如何告訴Paster,對於現有的項目,「嗨,請使用這個模板!「修改新建橋架控制器的模板

我需要什麼調用來告訴Paster使用我的模板而不是默認的模板?

回答

1

主塔通過添加粘貼命令來創建新的控制器和項目。這些命令在setup.py中定義,您可以添加新的命令。

例如(這取自Paste docs)假設您有一個名爲Foo的項目,該項目位於也稱爲foo的包中。

在setup.py中,將'foo'添加到'paster_plugins'列表中 然後向entry_points添加一個新命令。

即 entry_points = 「」 「 [paste.paster_command] mycommand的= foo.commands.test_command:測試 」「」

創建一個名爲目錄下 '富' '命令',添加一個__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它們有創建新控制器和RestController的命令,您可以複製這些命令。

+0

這個答案讓我度過了被卡住的部分。謝謝。 – 2010-10-02 07:33:23