次のように定義された 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データに問題がありますか?