5

私は最近Pyramidで遊んでいて、Pylonsのバックグラウンドから来て、トラバーサルではなくURLルーティングに焦点を合わせてきました。

また、ハンドラーを使用して「コントローラー」固有の関数を1つのクラスにグループ化することも検討しています。view.pyをたくさんの関数で汚染するのではなく。

構成:

config.add_handler('view_page', '/page/view/{id}', handler=Page, action=view_page)

ハンドラ:

from pyramid.response import Response
from pyramid.view import action

class Page(object):

    def __init__(self, request):
        self.request = request

    def view_page(self):
        return {'id': id}

私は今日、add_handler()呼び出しでのアクションの暗黙の宣言に関するドキュメントを読んでいたので、間違っている可能性があります...それにもかかわらず、私の主な問題はid、view_callable内にアクセスすることです。

'id'を取得するにはどうすればよいですか?

4

1 に答える 1

10

request.matchdictから«id»にアクセスできます。

from pyramid.response import Response
from pyramid.view import action

class Page(object):

    def __init__(self, request):
        self.request = request

    def view_page(self):
        matchdict = request.matchdict
        id = matchdict.get('id', None)
        return {'id': id}

より詳しい情報:

于 2011-01-06T13:40:17.343 に答える