Google App Engine 数据存储按属性删除实体

Google App Engine Datastore delete entity by properties

我用 pythondatastore 制作了一个简单的登录页面。用户模型如下。

class User(db.Model):
    name = db.StringProperty()
    password = db.StringProperty()

问题一:

假设我知道特定用户的名称和密码。如何从数据库中删除具有指定名称和密码属性的实体?

问题二:

假设我有一个用户实体,名称为 "John",密码为“1234”。鉴于这两件事,我如何将名称 属性 "John" 更改为 "Marcus"?

问题三:

是否可以不使用 GqlQuery 来实现?

这些东西在documentation中都有很好的解释。 (这也清楚地表明你不应该使用旧的 db API,而是 ndb,但没关系。)

1.

user = User.all().filter('name =', name).filter('password =', password).get()
if user:
    user.delete()

2.

user = User.all().filter('name =', 'John').filter('password =', '1234').get()
if user:
    user.name = 'Marcus'
    user.put()
  1. 没有什么需要 GqlQuery。 GQL 只是底层数据存储 RPC 的另一个接口:它在任何意义上都不比 db 或 ndb API 多 "native",并且它们不会以相同的方式 "compile down" 到 GQL那(例如)Django 的 ORM 编译成 SQL.