Google App Engine 数据存储按属性删除实体
Google App Engine Datastore delete entity by properties
我用 python
和 datastore
制作了一个简单的登录页面。用户模型如下。
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()
- 没有什么需要 GqlQuery。 GQL 只是底层数据存储 RPC 的另一个接口:它在任何意义上都不比 db 或 ndb API 多 "native",并且它们不会以相同的方式 "compile down" 到 GQL那(例如)Django 的 ORM 编译成 SQL.
我用 python
和 datastore
制作了一个简单的登录页面。用户模型如下。
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()
- 没有什么需要 GqlQuery。 GQL 只是底层数据存储 RPC 的另一个接口:它在任何意义上都不比 db 或 ndb API 多 "native",并且它们不会以相同的方式 "compile down" 到 GQL那(例如)Django 的 ORM 编译成 SQL.