0

私はPylonsプロジェクトの中で、コントローラーを頻繁に(おそらく必要以上に)作成および削除することになります。すべてのコントローラーの上部に独自のインポートと微調整を追加することにうんざりしています。新しいコントローラーテンプレートを変更することについて最近質問があり、途中でそれを行う必要がなくなりました-しかし、controller.py_tmplファイルがpasterによってどのように使用され、Pasterにどのように指示できるかがわかりません。既存のプロジェクト、「ねえ、代わりにこのテンプレートを使用してください!」

デフォルトのテンプレートの代わりにテンプレートを使用するようにPasterに指示するには、どのような呼び出しが必要ですか?

4

1 に答える 1

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

「pythonsetup.pydevelop」を実行した後、「paste mycommand bob」を実行できるようになり、「Hellobob」出力が得られるはずです。

Pylonsがこれにどのように追加して新しいファイルなどを作成するかを確認するには、pylons/commands.pyを参照してください。コピー可能な新しいコントローラーとRestControllerを作成するためのコマンドがあります。

于 2010-10-02T01:18:38.673 に答える