【问题标题】:Modifying The Template For New Pylons Controllers修改新 Pylons 控制器的模板
【发布时间】:2010-09-24 23:48:23
【问题描述】:

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

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

【问题讨论】:

    标签: python pylons paste paster


    【解决方案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:Test """

    在 '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,它们有用于创建新控制器和 RestController 的命令,您可以复制这些命令。

    【讨论】:

    • 这个答案让我超越了我被困住的部分。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多