1

すべての URL マッピング ジョブを実行するために Routes を使用しています。私のアプリケーションの典型的なルートは次のとおりです。

map.routes('route', '/show/{title:[^/]+}', controller='generator', filter_=postprocess_title)

多くの場合、{title} パラメーターから一部の文字 (空白やアンダースコアなど) を削除する必要があります。現在、コントローラー内のメソッドごとに、この変換を行う関数への呼び出しが 1 つあります。とても便利ではないので、Routes にこの仕事をしてもらいたいと思っています。出来ますか?

4

1 に答える 1

0

私はルートに詳しくないので、あなたが求めていることがルートで可能かどうかわかりません。

しかし、必要に応じてパラメーターから文字を削除するデコレーターを使用して、コントローラー メソッドを装飾することはできますか?

これがより便利になるかどうかはわかりません。しかし、私にとっては、デコレーターを使用することは、コントローラー メソッド内で同じことをインラインで行うこととは異なる「感覚」を持っています。

例えば:


@remove_spaces_from('title')
def my_controller(...):
    ...

デコレーターに慣れていない場合は、Google で「python デコレーター」を検索してください。覚えておくべき重要なポイント: デコレーターに引数が必要な場合、デコレーターで 2 レベルのラッピングが必要です。

于 2009-06-02T10:40:10.263 に答える