संदर्भप्रोपर्टी दो मॉड्यूल के बीच संदर्भों को संभालने में बहुत उपयोगी थी। फॉक्स उदाहरण:डीबी। रेफरेंसप्रोपर्टी() बनाम ndb.KeyProperty ऐप इंजन
class UserProf(db.Model):
name = db.StringProperty(required=True)
class Team(db.Model):
manager_name = db.ReferenceProperty(UserProf, collection_name='teams')
name = db.StringProperty(required=True)
- टीम उदाहरण के साथ 'MANAGER_NAME' प्राप्त करने के लिए, हम team_ins.manager_name का उपयोग करें।
- विशिष्ट टीम उदाहरण द्वारा प्रबंधित 'टीम' प्राप्त करने के लिए, हम user_instance.teams का उपयोग करते हैं और फिर से चालू होते हैं।
क्या यह आसान और समझ में नहीं आता है? > Ndb.KeyProperty (तरह = UserProf)
- team_ins -
NDB का उपयोग कर एक ही बात करने में, हमने
db.ReferenceProperty (UserProf, COLLECTION_NAME = 'टीमों के) को संशोधित करने के लिए है। manager_name.get() आप प्रबंधक नाम
देना सभी टीम जो विशेष उपयोगकर्ता द्वारा चरनी हैं प्राप्त करने के लिए होता है, हम (Team.manager_name == user_ins.key) Team.query में टीम के लिए
क्या करना है: (स्वरूपण है यहां काम नहीं कर रहा)
print "team name:", team.name
आप से निपटने इन स्थितियों से इस तरह आसान और NDB से DB में पठनीय लग रहा है देख सकते हैं।
- एनडीबी में रेफरेंसप्रोपर्टी को हटाने का कारण क्या है?
- यहां तक कि डीबी की क्वेरी user_instance.teams वही काम कर रही होगी जैसा कि यह एनडीबी के लूप में किया जाता है। लेकिन एनडीबी में, हम स्पष्ट रूप से लूप के लिए उपयोग कर उल्लेख कर रहे हैं।
- जब हम user_instance.teams करते हैं तो दृश्यों के पीछे क्या हो रहा है?
अग्रिम धन्यवाद ..
धन्यवाद। एनडीबी डीबी के समान है लेकिन यह स्पष्ट है और उपयोगकर्ता को यह पता चल जाएगा कि वहां() ऑपरेशन है। इस मामले में कोई प्रदर्शन सुधार नहीं है। मैंने ndb async के बारे में पढ़ा है, अभी तक इसका उपयोग नहीं किया है। – rajpy
@ टिम और गिडो, क्या आप कृपया http://code.google.com/p/google-app-engine-samples/ में से एक के समान ndb का उपयोग करके लिखे गए नमूना अनुप्रयोगों का सुझाव दे सकते हैं। और एनडीबी आधारित अनुप्रयोगों में पालन करने के लिए भी सर्वोत्तम प्रथाओं। यह बहुत मदद करेगा। धन्यवाद। – rajpy
'entity.keyproperty.get() को कॉल करना। Somevalue1' पहली बार' keyproperty' द्वारा संदर्भित इकाई को 'entity.keyproperty.get() में कुछ प्राप्त करेगा। Somevalue2' और 'entity.keyproperty.get()। Somevalue3' डीबी कॉल नहीं करेगा ??? –