问题标签 [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.
regex - 我需要从电子邮件中提取域,但我得到@domain.com 我不需要域开头的@
我需要从电子邮件中提取域,但我得到了 @domain.com。我不需要@
在域的开头
java - 有没有很好的 API 来获取有关当前事件的信息?
所以,更具体一点,我正在寻找一个 API,它可以让我看到当前在线流行的新闻报道。因此,例如,如果在多伦多发生恐怖袭击,那么它可能会成为各地的头条新闻。因此,我希望能够抓取一些与“多伦多爆炸案”相关的文章和头条新闻,或者“金·卡戴珊的所作所为确实不是新闻,但无论如何每个人都在谈论它”。如果我能够按地区获得头条新闻,那就更好了。
我正在构建的内容非常简单。只是一个网站,您可以在其中与一个随机的人配对,并提供有关当前事件的提示以及与该事件有关的一些文章,然后您就可以与该人交谈。因为有人会问,我将它作为计算机科学/商业课程申请流程的一部分,为 CS 3 年级/4 年级学生创建自己的创业公司,获得报酬,并获得政府资助。他们只是希望我们创造一些东西来展示我们的编程能力,以及我们在一周内能想出的东西作为选择散文的一部分。
我正在考虑为此使用 Google Trends,但似乎没有官方 API,而且我发现的非官方 API 相当基本,这很好,但我想要更完整如果可能,特色 API,即使它使用 Google 趋势以外的其他东西,只要它运行良好。
此外,我正在尝试找到一个支持 Python 2.7 的语言,但我也愿意将一种语言用于另一种语言,例如 Java、PHP 或其他任何语言,即使我并不真正了解那种语言,我仍然非常感谢这个建议,即使我不使用它,我相信其他人也会这样做。现在我正计划使用 App Engine,(可能)Django 和他们现在与应用引擎一起使用的消息传递 API,但如果需要,我愿意使用其他东西。
google-app-engine - 用于模块的 GAE 中间件?
假设我的 GAE 项目中的模块很少(比如 A、B、C)。他们共享用户数据库和会话。
例如:模块 A 将管理登录/注销操作(通过 cookie),模块 B、C 将处理其他操作。仅供参考,这些模块是用 PHP 和 Python 开发的。
现在,我不想在所有 3 个模块上制作用户和会话验证码。
无论如何,我是否可以为每个请求放置一个在所有 3 个模块之前运行的中间件。如X:如果用户已经登录,它会为每个请求添加header来设置用户id和一些用户的信息。
IE:在我可以实现我的上述想法之后。每个请求将在以下 3 种情况下运行 1:
- X,一个
- X,乙
- X, C
你说什么?谢谢
更新 1:更多信息
中间件,我的意思是请求中间件。
如果 X 是一个中间件,那么它将在请求传递给应用程序(或模块)之前运行,它只会更改请求,例如:
- 做一些认证动作
- 添加一些标题:
X-User-Id
: 用于授权用户 idX-User-Scopes
: 授权用户范围
- ETC ...
当然,它独立于内部模块的语言(PHP 或 Python 或 Java 或...)
X 中间件应该配置在app.yaml
.
python - Google App Engine 数据导出到 CSV TextProperty
所以我的 Google App Engine (Python) 中有一个 textproperty 变量。我正在通过远程 api 将数据导出到 csv。
我收到以下错误
供您参考,我使用以下命令运行程序:(在终端上)remote_api_shell.py -s APP ID import file_name
我想知道是否有任何方法可以将大于 1500 字节的 TextProperty 导出到 Excel CSV。
这是完整的跟踪
google-app-engine - 使用给定的名称和参数将用户直接上传到 GCS
我想让我的 Python GAE 应用程序的客户端使用我预先设置的特定对象名称和 GCS 参数(例如缓存控制和 ACL)直接将文件上传到 GCS,并在上传完成后执行一些操作。
我目前使用blobstore.create_upload_url
这个。但是,由于我不能预先给出任何参数或对象名称,我需要从“上传”回调处理程序中将整个文件复制到 GCS 上的新位置。这是时间和(计算)资源的消耗,听起来可以避免。
有没有办法优化这个过程?
- 我可以创建一个上传 URL 来立即上传具有正确名称和正确 ACL + 缓存控制参数的对象吗?(我简要地查看了签名的 URL,但它们似乎不支持像 blobstore API 那样的回调处理程序)
- 如果没有,有没有办法不必逐字节地将文件复制到新位置并在完成后将其删除?(能够移动文件并更改其属性会很好)
更新:我刚刚注意到 GCS python 客户端库copy2
现在有了。我可以发誓这以前不存在,但听起来它回答了第二个问题。
python - Django 和 GAE:身份验证中的奇怪延迟
所以我在 Google 的应用程序引擎上有了这个 Django 应用程序(更具体地说,是 Django Rest Framework)。大多数情况下它工作正常,除了偶尔,我遇到了一个奇怪的延迟(从 4-5 秒到 10-20 秒......)这个延迟发生在验证用户时和我点击视图本身之前。我已经划掉了两个理论:
- 启动和设置新实例导致的延迟:我已经在使用 python 实例的预热选项(https://cloud.google.com/appengine/docs/python/config/appconfig#Python_Warmup_requests)
- Cloud SQL 相关的延迟。该应用程序与 Cloud SQL 对话以对用户进行身份验证,尽管我已经记录了每个 SQL 查询并且延迟发生在进行任何查询之前。
因此,如果它与 GAE 的架构无关,并且不受 RPC 的限制……会发生什么?我已经插入了 cProfile,这是它可以告诉我们的(我将 cProfile 包裹在 wsgi 处理程序周围):
请注意中间的行:大约 10000 个“len”调用。通常,相同的分析报告没有这样的行。只有这些具有这种荒谬延迟的请求才包含这 10000 次“len”调用。
这可能表明对 Cloud SQL 的查询很长,但正如我之前所说,记录的查询发生在. 或者 SQL 日志记录中可能存在故障......也许。
google-cloud-datastore - Google Appengine:Datastore 查询指定了一个过滤器,结果中的字段相反
我在开发服务器中运行 python appengine。当我在调试控制台中查看这个查询时,我得到了这个令人惊讶的结果:
错误的
所以查询应该选择与Invoice.paid == True匹配的项目,但实际上它返回一个具有Invoice.paid == False的项目。知道为什么会发生这种情况吗?
google-app-engine-python - 带有python 500错误的谷歌应用引擎不断出现
我在此链接http://ascii-chan-1018.appspot.com/上创建了一个名为 Ascii Art 的谷歌应用引擎应用程序,但由于某种原因,有时当您发布某些内容时,它会在屏幕上显示此错误代码“500 Internal Server错误 服务器出错或无法执行请求的操作。” 有时它可以工作,有时它会给你这个错误代码。我不确定它是我的源代码还是谷歌服务器上的错误。
python - Google App Engine 数据库查询内存使用情况
当我对大量小对象(只有几个短字符串和布尔属性的 15k 个对象)运行查询时,对这些对象不做任何事情,我看到我的实例的内存使用量不断增加(增加 70Mb)。内存增加看起来与它只为查询而需要保留在内存中的数据量不成比例。
我使用的循环如下:
为了确保这不是由于 appstats,我呼吁appstats.recording.dont_record()
不要记录任何统计数据。
有谁知道可能发生了什么?或者关于如何调试/分析这个的任何指针?
更新 1:我打开gc.set_debug(gc.DEBUG_STATS)
了生产代码,我看到垃圾收集器被定期调用,所以它正在尝试收集垃圾。当我gc.collect()
在循环结束时调用 a (也是请求结束);它返回0
,并没有帮助。
更新 2:我做了一些黑客攻击让 guppy 在 dev_appserver 上工作,这似乎表明,在gc.collect()
循环结束后明确指出,大部分内存被 google.appengine.datastore.entity_pb 的 'dict 。财产'。
google-cloud-datastore - GAE - 添加两个总和超过 1000 的浮点数时,总和变为千位值
这是一个行政问题。有人声称这是我们的错,我们的代码被破坏了,当问题出现在不同的代码中时,可以更新我们导入的内容。所以,这不是问题。
我们将一起添加到字典中的值并将它们存储在一个变量中,然后添加到 NDB 数据存储中。
本质上,我们正在导入 csv 并解析数据。如果两个值的总和大于 1,000.00,则浮点数更改为千位值。
例子:
- 1263.13 将更改为 1
- 51367.42 将更改为 51
- 218.12 将保持不变 (218.12)
我们认为这是存储数据的问题,但我们无法重现该问题,并且已经验证了少量数据会出现“误报”。IE:没有问题。
从 blob 中读取 csv:
计算值:
储值:
数据存储列“float_sum”是 ndb.FloatProperty()
我们要弄清楚的是:当数字大于 1,000 时,什么会导致浮点数被截断为千位而不是别的。显然,我们知道将两个浮点数加在一起通常不会导致这种情况,这就是为什么我们认为这可能是数据存储本身的问题。