无法在GAE db中更改或返回StringProperty

时间:2013-08-19 04:55:06

标签: python google-app-engine

我想运行一个页面来更改变量的值,然后运行另一个显示该变量值的页面。听起来很简单,但我仍然是Python和GAE的新手,所以我很难弄清楚为什么第二页显示“无”。

class Model(db.Model):
  variable = db.StringProperty()
  def change(self):
    self.variable = '123'
  def echo(self):
    return self.variable

class Change(webapp2.RequestHandler):
  def get(self):
    model = Model(key_name = 'test')
    model.change()

class Echo(webapp2.RequestHandler):
  def get(self):
    model = Model(key_name = 'test')
    self.response.out.write(model.echo())

注意:我没有收到任何错误。

1 个答案:

答案 0 :(得分:4)

您需要使用put()方法&amp ;;将模型实例存储在数据存储区中。使用get_by_key_name,您可以检索给定键名(或多个名称)的模型实例(或实例)

class Model(db.Model):
    variable = db.StringProperty()
    def change(self):
       self.variable = '123'
       self.put()
    def echo(self):
       return self.variable

class Change(webapp2.RequestHandler):
   def get(self):
       model = Model(key_name = 'test')
       model.change()

class Echo(webapp2.RequestHandler):
   def get(self):
       model = Model.get_by_key_name('test')
       self.response.out.write(model.echo())