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
检索。数据存储以不同的方式对待它们,因此您应该保持一致。

您可以使用