尝试使用他们的会议示例了解如何在Google App Engine上部署服务器应用程序。
在示例代码中,我看到以下行
# create Conference & return (modified) ConferenceForm
Conference(**data).put()
,其中 1.会议是一个派生自ndb.Model的类,其中包含一个成员列表(请参阅问题的结尾)
所以,基本上看起来上面的代码是创建一个Conference类的实例,其值设置为与字典数据中的键相关联的值。
这是一个通用的Python代码(即创建一个类的实例,其值是用字典中的值初始化的)还是在ndb.Model init函数中有什么东西使用gettattr / setattr来完成上面的工作?
会议类的定义
class Conference(ndb.Model):
"""Conference -- Conference object"""
name = ndb.StringProperty(required=True)
description = ndb.StringProperty()
organizerUserId = ndb.StringProperty()
topics = ndb.StringProperty(repeated=True)
city = ndb.StringProperty()
startDate = ndb.DateProperty()
month = ndb.IntegerProperty()
endDate = ndb.DateProperty()
答案 0 :(得分:0)
这是一个特定于NDB的实现(尽管其他Python类当然也可以这样做)。如果您浏览到NDB Model类代码,您将看到:
def __init__(*args, **kwds):
...
self._set_attributes(kwds)
' _set_attributes'如果它们有效,则设置这些值。
请注意,某些键用于其他目的,例如:key,id(及更多)。