获取最新数据项 - Google App Engine - Python

2024-05-25

我需要检索添加到集合中的最新项目。我是这样做的:

class Box(db.Model):
    ID = db.IntegerProperty()

class Item(db.Model):
    box = db.ReferenceProperty(Action, collection_name='items')
    date = db.DateTimeProperty(auto_now_add=True)

#get most recent item
lastItem = box.items.order('-date')[0]

这是一种昂贵的方法吗?有没有更好的办法?


如果你要迭代一个框列表,这是一个非常糟糕的方法。您将为每个框运行额外的查询。您可以轻松查看发生了什么Appstats http://code.google.com/appengine/docs/python/tools/appstats.html.

如果您按照请求执行其中一项,可能没问题。不过这是不理想的。您可能还想使用:lastItem = box.items.order('-date').get(). get http://code.google.com/appengine/docs/python/datastore/queryclass.html#Query_get只会将第一个结果返回给应用程序。

如果可能的话,添加一个会明显更快lastItem财产给Box,或存储Box ID (你的属性) on Item。换句话说,对数据进行非规范化。如果您要获取盒子及其最新项目的列表,您need使用这种方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

获取最新数据项 - Google App Engine - Python 的相关文章

随机推荐

  • 适用于图形应用程序的快速、像素精度 2D 绘图 API?

    我想创建一个跨平台的绘图程序 编写应用程序的一个要求是画布上具有像素级精度 例如 我想编写自己的画线算法 而不是依赖别人的 我不想要任何形式的抗锯齿 同样 需要像素级控制 我希望屏幕上的用户交互快速且响应灵敏 取决于我编写快速算法的能力 理
  • 如何在Stata do文件编辑器中执行多行选择?

    有谁知道如何使用Stata do file编辑器中的 执行选择 功能来处理跨多行的代码 目前我无法找到不使用 delimit 来做到这一点的方法 需要重复 delimit 的系统在我想运行的每个块的开头 任何建议表示赞赏 我相信你可能会理解
  • 使用 -Xlint 重新编译:未选中详细信息

    在编译 java 程序时 我们收到 使用 Xlint 重新编译 未选中详细信息 为什么我们会收到此错误 可能是因为您没有正确使用泛型 也许您将遗留代码与通用代码混合在一起 这是引用自类型擦除的官方踪迹 http download oracl
  • 整数除法性质

    下面的整数算术性质成立吗 m n l m n l 起初我以为我知道答案 不成立 但现在不确定 它适用于所有数字还是仅适用于某些条件 即n gt l 该问题涉及计算机算术 即q n m q m n 忽略溢出 Case1 assume m kn
  • 使用 tf.exe 设置 Azure DevOps Pipeline 的分支权限

    我有一个 Powershell 脚本 它尝试设置在构建管道中调用的分支权限 不幸的是 我收到了未经授权的错误 但我不知道为什么 代码片段 tfExe split path parent MyInvocation MyCommand Defi
  • Sublime Text 2 的 git 提交错误[重复]

    这个问题在这里已经有答案了 我正在 Udacity 上学习 如何使用 Git 和 GitHub 课程 我正在按照示例进行操作 但遇到了问题 我自己尝试通过谷歌搜索和反复试验来解决问题大约两个小时 我认为是时候在 StackOverflow
  • 如何以 HH:MM 表示小数时间

    我有一个十进制格式的时间 22 13以小时为单位 我想在 R 中将其表达为HH MM 我是说 22 08 贬值秒 有人可以帮助我吗 语法 02 0f是将值四舍五入为整数并使其始终为 2 个单位 所以 7 8分钟将转换为字符 08 x lt
  • 使用按钮 tkinter 删除选定的笔记本选项卡

    tkinter 中删除所选笔记本选项卡的功能是什么 我在网上找不到任何关于此的信息 这是我写的代码 我只需要函数 from tkinter import from tkinter import ttk import math import
  • SQL Server批量上传策略

    我使用以下函数将数据从 CSV 上传到 SQL 表 有更好的方法吗 我现在担心连接长时间保持 因此需要减少 public bool SaveProxyBulkUploadData List
  • Serilog 破坏多个日志?

    这实在是太离奇了 我有 2 个完全独立的程序 它们都使用 Serilog 例如 Log Logger new LoggerConfiguration MinimumLevel Debug Filter ByExcluding e gt e
  • 如何指定 DjangoForeignKeyModel 或 AdminModel 字段的默认值?

    如何在 django 模型或 AdminModel 中的foreignkey字段上设置默认值 像这样的东西 但这当然行不通 created by models ForeignKey User default request user 我知道
  • Rails api 中阻止用户配置文件的最佳 HTTP 状态代码是什么?

    我在 Rails 中为社交应用程序编写了一个 API 这个应用程序就像Facebook一样 用户可以阻止其他用户 如果用户 A 阻止用户 B 则用户 B 无法查看用户 A 的个人资料页面 那么我应该返回的最佳 HTTP 代码状态是什么 40
  • jQuery 可以使用结束标签作为选择器吗?

    我对 jQuery 还很陌生 我遇到了这个 jQuery 代码 它使用 div div 作为选择器 div div html someString text 首先 我想知道它是否是一个合法的标签 因为div有一个结束标签 但我的主要问题 j
  • PDO 从表中获取一列到一维数组中

    我对 PDO 和让它们与 MySQL 一起工作还很陌生 我似乎在插入新数据和检索单个结果方面进展顺利 但是我坚持了下来 我有一张由配料组成的桌子 我试图将所有配料放入一个数组中 我已经直接在 SQL 中运行查询 它显示了所有结果 但是使用
  • 检测(在服务器端)Flex 客户端何时与 BlazeDS 目标断开连接

    我想知道是否可以轻松检测 在服务器端 Flex 客户端何时与 BlazeDS 目标断开连接 我的情况很简单 我想尝试使用它来计算每个客户端在每个会话中连接的时间 我还需要能够区分客户端 即 不仅仅是计算我在 ds console 中看到的当
  • 找不到模块:错误:包路径。未从包中导出

    import firebase from firebase const firebaseConfig apiKey AIzaSyBOK7x5N5UnjY4TDqndzH7l5tvdNIsWFRc authDomain todo app e3
  • 将属性值指定为 CDATA

    可以将 XML 属性值指定为 CDATA 吗 如果是的话 相同的模式是什么 如果不是 为什么 XML 中没有解决这个限制 不 你不能这样做 在什么构成属性和什么构成子元素之间存在非常细的界限 并且存在很大的争论 看here https st
  • 推送通知 applicationIconBadgeNumber 在 ios7 中未更新

    我在应用程序委托中使用以下代码来接收远程通知 但当应用程序在后台时 其 applicationIconBadgeNumber 以红色 白色显示在应用程序图标的左上角 不会更新 当推送通知收到时 它会以幻灯片动画出现在屏幕的右上角 通知有效负
  • AWS 存储桶和区域

    该应用程序结合使用载波carrierwave aws宝石 在迁移 Rails 版本 升至 4 2 Ruby 版本 2 2 3 并重新部署到同一临时服务器时遇到了障碍 AWS 存储桶最初是在免费套餐中创建的 即俄勒冈州 us west 2 但
  • 获取最新数据项 - Google App Engine - Python

    我需要检索添加到集合中的最新项目 我是这样做的 class Box db Model ID db IntegerProperty class Item db Model box db ReferenceProperty Action col