Bunu yapmanın pek çok yolu var.
Veri modelinde daha fazla sınıf gerektirmeyen bir yöntem istiyorsanız, en son sürümü okumak için sürümleri ve ata sorgusunu yazmak için ebeveyn özniteliğini kullanabilirsiniz.
model olabilir:
class WikiPage(ndb.Model):
title = ndb.StringProperty(required = True)
text = ndb.TextProperty(required = True)
datetime = ndb.DateTimeProperty(auto_add_now = True)
kolu olabilir: Burada
bir bu Python GAE içinde ndb.Model ve webapp2 çerçevesini kullanarak bir wiki sayfasında işe yarayabilir nasıl örneğidir
class Page(webapp2.RequestHandler):
def get(self, path):
# create the page key from the page id (in this case, the get request path)
page_key = ndb.Key('WikiPage', path)
# query for edited versions
wikipage_edited = WikiPage.query(ancestor=page_key).order(-WikiPage.datetime).get()
# check if wikipage have edited versions
if wikipage_edited:
wikipage = wikipage_edited
# if not, get the original version
else:
wikipage = page_key.get()
# some custom function to render the wikipage
self.render(wikipage)
def post(self):
# you can pass some parameter that indicates the page_id being edited
page_id = self.request.get('page_id')
# check if page_id was sent
if page_id:
wikipage = WikiPage(parent = ndb.Key('WikiPage', page_id),
title = self.request.get('new_title'),
text = self.request.get('new_text'))
# if page_id wasn't sent, it assumes that a new page is being created
else:
# some custom function that create a page id in the way you want
page_id = self.create_a_page_id()
wikipage = WikiPage(id = page_id,
title = self.request.get('title'),
text = self.request.get('text'))
wikipage.put()
Java veya Python? Java ise, hangi veri erişim çerçevesini kullanıyorsunuz? –