- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
https://developers.google.com/appengine/docs/python/ndb/
https://developers.google.com/appengine/docs/python/ndb/queries
ndb.gql 和 ndb.query 有区别吗? (在语法旁边)
例如
cursor = ndb.gql("select * from Account")
对比
cursor = Account.query()
因为我喜欢 ndb.query 因为我认为它更具可读性
例子:acc=Account.query(Account.username==form.username.data,Account.password==form.password.data)
如果这两种方法在幕后不同/相同,我找不到任何信息。
=> 也许有性能折衷?
If you are accustomed to SQL, beware of false assumptions when using GQL. GQL is translated to NDB's native query API. This is different from a typical Object-Relational mapper (like SQLAlchemy or Django's database support), where the API calls are translated into SQL before they are transmitted to the database server. GQL does not support Datastore modifications (inserts, deletes or updates); it only supports queries.
我猜 ndb.query 应该“更快”,因为它不需要翻译,对吧?
最佳答案
这只是做同一件事的两种不同方式。选择在特定情况下对您来说更容易的那个。你是对的 gql() 理论上比较慢,因为它在解析后构建了一个 Query 对象,但我认为你不会注意到速度上的任何差异(假设你实际运行查询:-)。
请注意,两者都返回同一类型的对象:
>>> q1 = Employee.query()
>>> q1
Query(kind='Employee')
>>> q2 = gql('SELECT * FROM Employee')
>>> q2
Query(kind='Employee', default_options=QueryOptions(offset=0))
>>>
(仅当您在 GQL 中使用 OFFSET 或 LIMIT 语法时,default_options 字段才相关。)
所以你可以用结果做什么是完全一样的。您甚至可以使用 .filter() 和 .order() 方法对 q2 应用额外的过滤器和订单。
关于python - ndb.gql 与 ndb.query - Google App Engine,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11383216/
我正在尝试导入本地软件包,之前在其他项目中都已经这样做。我不确定如果我做错了什么,或者我在环境中摔坏了,我尝试去1.14 && 1.15。 go mod init github.com/malikia
我已经将此作为问题发布在 graphql-tag 存储库中,但我会在这里发布,因为我希望这里有人有可行的解决方案。 我想做什么? 我想根据传递到我的 React 组件的 props 动态定义本地类型的
我想用 Google 查询语言实现一系列四舍五入的查询,例如: select round(age,-1), count(id) group by round(age,-1) 或 int/floor/e
Google 应用引擎返回“BadRequestError:事务内只允许祖先查询。”这在代码上下文中意味着什么: class Counter(db.Model): totalRegis
对 GAE 的数据存储进行一些修改后,我发现我想不出一个合适的方法来过滤掉结果,即在多值属性上使用不等式过滤器“!=”: class Entry(db.Model): ... tags
我有一个长时间运行的后台进程,可以解析几十万行 CSV。我注意到该进程存在内存泄漏,偶尔会导致任务达到其软内存限制并终止。我已将代码部分缩小为以下代码块: class BaseModel(db.Mod
我是学习和使用 GQL 的新手。我在这里看到了 GQL 语法:https://developers.google.com/appengine/docs/python/datastore/gqlrefe
我创建了一个 NDB 模型 class Account(ndb.Model): accId = ndb.StringProperty() firstName = ndb.StringPro
我用 gql来自 graphql-tag . 假设我有一个 gql对象定义如下: const QUERY_ACCOUNT_INFO = gql` query AccountInfo { v
由于建议的库:gql,我很难在 Python 中使用 GraphQL完全没有记录。 我怎么发现要提供 api url,我需要像这样将 RequestsHTTPTransport 对象传递给客户端: c
我需要更改条目的值,但以下代码不起作用。 logList = db.GqlQuery("SELECT * FROM Log ORDER BY date DESC LIMIT 1") logList[0
我还没有找到关于如何使用 GQL 或任何替代方案查询多对多关系模型的良好简单教程。谁能给我一个使用 GQL 或任何替代方案的 Python 示例? 编辑: results = RestaurantRe
当我尝试为导入 from google.appengine.ext import ndb 的模块创建文档时,Sphinx 抛出此错误: Traceback (most recent call last
我正在生成一个合并许多用户评论的提要,因此您的提要可能是 user1+user2+user1000 的评论,而我的可能是 user1+user2。所以我有这样一句话: some_comments =
如何使用列表作为过滤器在 GQL 中进行选择。 如果我有课 public class Obj{ @Persistent private Long name; } 我怎样才能得到名称不在
我有一个名为 Account 的实体类型。其中一个字段是一个名为 selfie 的字符串,它基本上是用户上传的自拍的 url。我想获取有自拍的用户(因此,如果用户没有自拍,则不应将其包含在结果集中)。
我有一个包含一些条目的表。我想用一些默认值向该表添加一列。在 mysql 中,我们将其作为在 mysql 中: `ALTER TABLE Example ADD status VARCHAR(60)
我是 Python 的新手,目前正在开发我的第一个 Google App Engine 应用程序。在我的程序中,我有一个“收件箱”数据库模型,其中包含字符串属性,例如 to_user、from_use
我正在尝试在 GAE 上构建类似平台的论坛。 我必须首先提到:我对 GAE 有点陌生。 我想提取对特定帖子的所有回复。到目前为止,结构如下所示: - Forum --- Post ----- Repl
我想做的是构建一些迷你 cms,其中包含带有 uri 的页面。 我的 urls.py 中的最后一条路线指向我的 views.py 中的一个函数,它会在数据存储中检查是否有可用的页面与当前请求的 uri
我是一名优秀的程序员,十分优秀!