问题标签 [google-app-engine-python]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
15 回答
71722 浏览

java - 在 Google App Engine 上选择 Java 还是 Python

目前 Google App Engine 支持 Python 和 Java。Java 支持不太成熟。然而,Java 似乎有更长的库列表,尤其是对 Java 字节码的支持,而不管用于编写该代码的语言是什么。哪种语言会提供更好的性能和更强大的功能?请指教。谢谢!

编辑: http ://groups.google.com/group/google-appengine-java/web/will-it-play-in-app-engine?pli=1

编辑: “权力”是指更好的可扩展性和包含框架之外的可用库。但是,Python 只允许纯 Python 库。

0 投票
0 回答
263 浏览

google-app-engine - 数据存储全文搜索文档?

这段 2011 年的 Google IO 视频介绍了全文搜索 API(31:13),通过在属性中设置一些属性来引用 DataStore 集成。

但是,我似乎找不到任何相关文档来展示如何使用此功能。

有谁知道自 API 发布以来是否有任何变化以及现在是否以另一种方式工作?

任何指针将不胜感激。

0 投票
2 回答
11322 浏览

google-app-engine - 为什么我得到了超过配额错误?谷歌应用引擎

我在谷歌应用引擎中有一个项目,我有后端模块,我用它来运行长后端进程。这是 backend-module.yaml 文件中的配置:

但是当我运行长时间运行的过程时,我会出现这个错误:This application is temporarily over its serving quota. Please try again later.

编辑:我想调整保存在我的云存储中的许多图像的大小。

当我将 http 请求发送到指定的 url 时代码运行。

所以我使用了一个模块(基本缩放)来运行这个漫长的过程......

我的应用程序中启用了计费,所以我想我可以随心所欲地运行后端。正确的 ?

顺便说一句:我的应用程序没有崩溃,自动模块仍然运行良好!

0 投票
2 回答
1070 浏览

python - APP.YAML:在 app.yaml 中组合不同的 URL——同一个文件、静态文件服务和源代码访问

我现在有很多关于app.yaml的问题,我找了又找,但是没有找到这个。

TLDR:请先阅读完整答案,这不是您的标准应用程序可读性:真。 我基本上想通过不同的路径访问同一个文件,例如 /static/img/pic.jpg 和 /img/pic.jpg

用例

我构建了一个烧瓶应用程序(根据fsouza的工作),我尝试为烧瓶构建一个缩略图扩展,它将在 gae 上工作(因为它是一个只读 FS,我分叉了烧瓶缩略图,目前正在尝试扩展它。)

所以我需要:

  • 通过 python 访问我的静态文件,这样我就可以读取 img 并即时制作缩略图。网址是例如。/静态/IMG/PIC.JPG
  • 仍然通过 app.yaml 传递其他图像、css、js。网址是例如。/IMG/PIC.JPG

什么不起作用:

它在本地工作,部署后将无法工作。我认为 app.yaml 并没有像它应该的那样由 dev_appserver.py 严格执行。

我可以让其中一种方案发挥作用。这是我的 app.yaml 目前的样子:

我也试过这个:

当我注释掉特定的 js、css、img 内容时,应用程序可以访问 application/static/img 中的 img 并从中制作缩略图。但是不会提供带有例如 /img/dont.need.thumbnail.jpg 的网址。

当我评论这部分时:

img,css,js 得到应有的服务。

有谁能够帮我?我做错了什么?

app.yaml url 是递归的吗?

当前解决方法:

我目前的解决方法是,我只需在 python 应用程序中添加几个 url 路由。但这效率不高,我怀疑这会花费我更多的 CPU 时间并且速度较慢。例如

奖励提示:

如果你只是 git push-to-deploy

将不起作用,因此一旦您在 gae 服务器上而不是在本地进行测试,python 应用程序将无法访问静态图像。您必须通过应用程序引擎启动器部署它(仅此一项就花了我很长时间才发现)

0 投票
1 回答
1197 浏览

google-app-engine - 用于文档管理系统的 Google Drive / App Engine

我管理一所大学的文件管理系统。该系统是第 3 方,与作为我们 ERP 系统的另一个第 3 方数据库集成。DMS 相当笨重,并且有大量可怕的错误/缺乏功能和支持。出于好奇,我在空闲时间一直在玩 Google App Engine / Drive SDK。由于我们是 Google Apps for Education 客户,因此我们拥有无限的驱动器空间,并且我们所有的用户都是 Google Apps 用户。

在内部构建一个利用 Drive SDK 管理所有大学文件(约 6 TB)的 Web 应用程序(可能由 Google App Engine 提供支持)是否可行。从我的实验来看,它似乎具有所需的所有功能。

0 投票
2 回答
81 浏览

google-app-engine - 应用引擎任务未在定义的目标中执行

我正在尝试重构我的一些站点代码使用模块,无论我尝试什么,我似乎都无法让推送任务在我想要的地方执行。

这段app的基本结构是这样的……

  1. 用户将相当大且复杂的 XML 文件上传到默认模块上的处理程序
  2. 处理程序将文件放入 GCS 并为文件创建数据存储条目
  3. 该模型有一个 _post_put_hook,它创建两个任务队列作业,对这个 XML 文件进行一些处理。

我希望这两个任务队列作业在大于 F1 的实例中执行,因为我遇到了 128MB 的软内存限制,并且我希望这些作业执行得更快一些。

所以我像这样创建了一个 dispatch.yaml 文件(我仍然不太确定这个文件是否是必需的)......

还有这样的tasks.yaml ...

最后,将作业排队的 post_put_hook 看起来像这样......

我的理解是,因为我在 taskqueue() 调用中指定了一个目标,它应该使用该模块,但它没有。我尝试过部署和不部署到应用引擎的 dispatch.yaml 文件,它似乎对任务执行的位置没有任何影响。应用引擎开发控制台似乎承认有一个任务模块,因为它提供它作为过滤我的日志和实例列表的选项。

我应该补充一点,我通过 CLI 部署了该应用程序,确保同时指定我的 app.yaml 和 tasks.yaml (这是在尝试部署它时让我绊倒的事情)。

0 投票
0 回答
511 浏览

google-app-engine - 数据存储上的搜索 API,包含频繁更改的数据

数据存储实体具有以下字段:

  • ID
  • 创建
  • 用户身份
  • not_unique_id
  • 姓名
  • 描述
  • 数字

我希望能够对名称和描述执行全文搜索。为此,我们需要从 Datastore 实体创建 Google Search Api 文档。

但是,数据存储区数据具有以下属性:

  • 用户的数据在添加 12 小时后被删除。
  • 根据用户需求,删除用户数据并添加新数据。
  • not_unique_id 是第三方 id,应该用于在 Search Api 中组合相关实体,因为我们每次搜索只需要一个。
  • 当用户提交新数据时,一次将是 +- 1000 个实体。

我遇到的最大问题是阻止 Google API 文档引用不再存在的 Datastore 实体。(不存在,因为 not_unique_id 不再出现在数据存储中)

我想看看一些概念、指南、想法和提示,以便我可以验证我是否走在正确的道路上。谢谢!!

正在进行的解决方案:

下面是使 Search API 与 Datastore 保持同步的例程。CreateUpdateDelete 根据用户请求执行。根据 App 请求执行读取。Cron 作业将使用 Delete 使 Search API 与 Datastore 保持同步。

数据存储实体

id = user_id

祖先 = not_unique_id

搜索 API 文档

创造

  1. 如果祖先+id 组合已经存在,请转到更新。
  2. 用户数据被插入到数据存储中。
  3. 搜索文档是根据祖先 (not_unique_id) 创建的。文档的名称和描述是实体组中最常见的名称。

  1. 全文搜索 API 查询名称/描述以获取 not_unique_id。
  2. 查询具有祖先 == not_unique_id 且编号 > 0 的实体的数据存储区。
  3. TODO 如果找到的一个或多个 not_unique_id 不再存在实体怎么办?我期待一定数量的分页结果。

更新

  1. 更新数据存储实体。

删除

  1. 将数据存储实体的编号设置为 0。

克朗

获取 number == 0 或创建时间 < 12 小时前的所有实体。如果最后一个后代实体即将被删除,则删除文档。删除实体。

0 投票
1 回答
60 浏览

google-app-engine - 通过缺少重复属性进行 GAE 过滤器

我正在尝试查询对给定重复属性没有值的所有对象。

例如,假设您有以下模型:

并且您想要所有 Foo 的实例,其中 bar 没有值,或者是 []。您将如何执行此查询或解决此问题?

注意(来自 GAE 的 ndb 文档):

在重复属性上查询 None 值具有未定义的行为;不要那样做

0 投票
1 回答
246 浏览

python - Google App Engine Python Search Api 的基于位置的查询(地理搜索)问题

我已经实现了 GAE 的 Python Search Api,并试图根据与给定地理点的距离进行查询。

我的查询字符串是:“距离(位置,地理点(XXX,YYY))< ZZZ”。但是,由于某种原因,在生产服务器上,此查询字符串返回距离大于 ZZZ 参数的项目。

以下是证明不准确的实际数字(生产):

实际距离:343.9m
查询仍然得到结果的距离:325m

实际距离:18,950.3
仍能得到结果的查询距离:13,499m

实际距离:55,979.0
仍能得到结果的查询距离:44,615m

实际距离:559,443.6
查询仍然得到结果的距离:451,167m

实际距离:53.4
仍能得到结果的查询距离:46m

实际距离:35,322.2
仍能得到结果的查询距离:30,808m

实际距离:190.2
仍能得到结果的查询距离:143m

在我的开发服务器上,这些不准确之处不存在。我能够查询到确切的仪表并获得预期的结果。

什么可能导致这种情况以及如何解决它以便我在生产中获得准确的查询结果?还有其他人遇到同样的问题吗?

0 投票
1 回答
2189 浏览

python-2.7 - google python api中的无效语法错误

我是 google python api 客户端的新手。我正在向https://developers.google.com/api-client-library/python/start/get_started学习。我想制作一个将 python 对象转换为 JSON 数据并发送的 api到一个 servlet。

文件api.py的python代码:

显示的错误是:

请帮忙纠正我..提前谢谢....