次のように定義された RootFactory があります。
class RootFactory(object):
__parent__ = None
__name__ = None
def __init__(self, request):
self.request = request
def __getitem__(self, key):
if key == "user":
dispatch = UserSelector(self.request)
dispatch.__name__ = key
dispatch.__parent__ = self
return dispatch
class UserSelector(object):
__parent__ = None
__name__ = None
def __init__(self, request):
self.request = request
def __getitem__(self, key):
dispatcher = UserDispatcher(self.request)
dispatcher.__name__ = key
dispatcher.__parent__ = self
return dispatcher
class UserDispatcher(object):
__parent__ = None
__name__ = None
def __init__(self, request):
self.request = request
def __getitem__(self, key):
user = self.request.db.query(User)
user = user.get(key)
if not user:
raise KeyError
dispatcher = UserDispatcher(self.request)
dispatcher.__name__ = key
dispatcher.__parent__ = self
dispatcher.user = user
return dispatcher
これは私が継承したプロジェクトからのもので、これがどのように機能するかを理解しようとしています。プロジェクトは、SQL 錬金術の足場です。そのため、GET
リクエストがlocalhost:6543/user
のインスタンスに着信するRootFactory
と、 が作成され、__getitem__
メソッドが実行されます。これは のインスタンスを返しますUserSelector
。
__getitem__
で が実行される原因は何UserSelector
ですか?
また、リクエストが であるPUT
か、オブジェクトPOST
をインスタンス化するものは何ですか?UserDispatcher
my では、リクエストUserViews
UserDispatch
のコンテキストとして渡されます。PUT
を送信しようとするとPUT
、404 The resource could not be found. predicate mismatch
ビューが表示されますUserViews (request_method = GET,HEAD)
。ここで述語とは何を指していますか?
PUTデータに問題がありますか?