Python 更新GAE数据存储中的条目
快速提问(可能是一个基本问题!) 我正在使用谷歌应用引擎与烧瓶。我有以下资料:Python 更新GAE数据存储中的条目,python,google-app-engine,flask,Python,Google App Engine,Flask,快速提问(可能是一个基本问题!) 我正在使用谷歌应用引擎与烧瓶。我有以下资料: class Bear(db.Model): bear_id = db.IntegerProperty() pair = db.IntegerProperty() status = db.IntegerProperty() time = db.IntegerProperty() 我在此处通过URL参数添加了以下内容: @app.route('/add') def add(): rightNow = int(
class Bear(db.Model):
bear_id = db.IntegerProperty()
pair = db.IntegerProperty()
status = db.IntegerProperty()
time = db.IntegerProperty()
我在此处通过URL参数添加了以下内容:
@app.route('/add')
def add():
rightNow = int(time.time())
cur_id = int( request.args.get('id') )
cur_status = int( request.args.get('status') )
newEntry = Bear(
time = rightNow,
bear_id = cur_id,
status = cur_status,
# key_name = str(cur_id)
)
newEntry.put()
return 'added'
并(尝试)在此处再次通过URL参数进行更新:
@app.route('/update')
def update():
rightNow = int(time.time())
cur_id = int( request.args.get('id') )
cur_status = int( request.args.get('status') )
address_k = db.Key.from_path('bear_id', cur_id)
address = db.get(address_k)
address.status = cur_status;
address.put()
return 'cur_id'
我试图使用bear_id字符串来提取数据存储实体,但我注意到我得到了存储在address_k中的错误密钥。它与我在数据存储中看到的密钥不匹配。我不知道为什么会这样。有什么想法吗?我最后做了以下几件事: 在add中,我将key_名称添加为ID的字符串
@app.route('/add')
def add():
rightNow = int(time.time())
cur_id = int( request.args.get('id') )
cur_status = int( request.args.get('status') )
newEntry = Bear(
time = rightNow,
bear_id = cur_id,
status = cur_status,
key_name = str(cur_id)
)
newEntry.put()
return 'added'
然后在更新时,我可以这样拉它:
@app.route('/update')
def update():
rightNow = int(time.time())
cur_id = int( request.args.get('id') )
cur_status = int( request.args.get('status') )
address_k = db.Key.from_path('Bear', str(cur_id))
address = db.get(address_k)
address.status = cur_status;
address.put()
return cur_id
而且它有效 发生这种情况是因为您使用
id
作为int
插入,而使用id
作为str
检索。数据存储以不同的方式对待它们,因此您应该保持一致。您可以使用