问题标签 [google-app-engine]

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 投票
3 回答
5182 浏览

google-app-engine - 如何最好地防止 GAE 应用程序中的 CSRF 攻击?

那么,对于 GAE 应用程序来说,防止 XSRF 攻击的最佳方法是什么?想象一下:

  1. 任何人都可以看到用户的公共对象,并且在请求中使用 db.Model id 来确定要显示的对象。恶意用户现在拥有该 ID。
  2. 恶意用户创建自己的对象并签出删除表单。他们现在知道如何删除具有特定 id 的对象。
  3. 恶意用户让无辜用户提交对该用户对象的删除请求。

我可以添加哪些步骤来防止#3?请注意,当我说 ID 时,我使用的是密钥的实际 ID 部分。我的一个想法是在删除请求中使用完整的键值,但这会阻止恶意用户解决这个问题吗?据我所知,密钥是模型类类型、应用程序 ID 和对象实例 ID 的某种组合,因此如果他们愿意,他们可能会从 id 派生密钥。

还有其他想法吗?Jeff 写了一篇关于这个的帖子,并提出了一些方法——一个隐藏的表单值,它会在每次请求时改变,以及一个通过 js 写入表单的 cookie 值。我不想排除非 javascript 用户,因此 cookie 解决方案不好 - 对于隐藏的表单值,我必须对显示可删除对象的每个请求进行数据存储写入 - 对于可扩展的对象来说,这不是理想的情况应用程序!

还有其他想法吗?

0 投票
3 回答
1705 浏览

django - Django @ Google App Engine - 站点地图框架

有人设法让 Django站点地图框架在 Google App Engine 上运行吗?

我收到以下异常:

/sitemap.xml 配置不当

您尚未设置 DATABASE_ENGINE 设置。

请求方法:GET 请求 URL: http: //127.0.0.1 :8080/sitemap.xml 异常类型:ImproperlyConfigured 异常值:您尚未设置 DATABASE_ENGINE 设置。异常位置:D:\Program Files\Google\google_appengine\lib\django\django\db\backends\dummy\base.py 在抱怨中,第 13 行

0 投票
2 回答
8867 浏览

jquery - Django template with jquery: Ajax update on existing page

I have a Google App Engine that has a form. When the user clicks on the submit button, AJAX operation will be called, and the server will output something to append to the end of the very page where it comes from. How, I have a Django template, and I intend to use jquery. I have the following view:

Here's the script in scripts.js:

And here's my controller code:

As you can see, when the user clicks on the submitbutton, the controller method Mainpage.post will be called.

Now I want to display the content of the 'result' variable right after the form, how can I do it?

0 投票
3 回答
13268 浏览

jquery - 在 Google App Engine 中构建 Ajax 表单

我有一个表单,当我单击提交按钮时,我想与服务器通信并从服务器获取一些内容以显示在同一页面上。一切都必须以 AJAX 方式完成。如何在 Google App Engine 中执行此操作?如果可能的话,我想用 JQuery 来做。

编辑:code.google.com/appengine/articles/rpc.html中的示例不适用于表单。


编辑: rpc 过程不适用于 form

0 投票
4 回答
3316 浏览

python - 将 GqlQuery 结果集转换为 python 字典

假设我有一个这样的模型

我要像这样的 GqlQuery

我想获取 GqlQuery 的结果并将其转换为某种 JSON 字符串,我可以使用不同的语言对其进行操作。


这就是我现在的做法

  1. Foo类添加一个方法,将其转换为字典

    /li>
  2. 循环遍历 GqlQuery 结果并手动将每个 Foo 实例添加到字典

    /li>

我上面的方法有效,但感觉有点恶心。

有没有更干净、更“Pythonic”的方式来处理这个问题?

最终格式不必完全是我上面所做的。它必须是可以很好地转换为 JSON 的东西,这样我就可以从 Javascript/PHP/whatever 处理它。

0 投票
2 回答
512 浏览

eclipse - 如何在 Pydev for Eclipse 中为 WebOb 响应/请求对象启用自动完成功能?

我一直在使用 Pydev/Eclipse 开发 Google App Engine (GAE) 应用程序,但我无法从 WebOb 获取响应/请求对象以自动完成。我使用了广泛推荐的教程来配置所有内容;自动完成适用于我遇到的所有其他事情。

例如:如果我输入“self”。我得到响应和请求的自动完成;如果我选择其中一个,请说“响应”,然后添加“。” (到目前为止,将整行带到“self.response”。)我没有任何选项 - 由于包含 WebOb 库,我希望将“out.write()”之类的东西作为选项。

我将以下库包含到我的 Pydev 项目中:

  • C:\Program Files\Google\google_appengine
  • C:\Program Files\Google\google_appengine\lib\django
  • C:\Program Files\Google\google_appengine\lib\webob
  • C:\Program Files\Google\google_appengine\lib\yaml\lib

任何帮助将不胜感激,谢谢。

0 投票
2 回答
1061 浏览

python - Google App Engine 中的父属性和引用属性有什么区别?

据我了解, db.Model 的 parent 属性(通常在构造函数调用中定义/传递)允许您在数据模型中定义层次结构。结果,这增加了实体组的大小。但是,我不太清楚我们为什么要这样做。这是否严格符合 ACID 标准?我想看看每个场景最适合或更合适的场景。

0 投票
3 回答
7692 浏览

google-app-engine - 如何在 GAE 中有效地实现会话?

我想知道如何为我正在工作的 GAE 应用程序实施我自己的会话(更多是为了练习)......起初我正在考虑使用数据存储来存储会话数据。但是,每次需要将某些内容添加到会话“存储桶”中时,都需要将其保存到数据存储中。显然这很糟糕,因为我们想最小化我们的写入。然后我考虑使用 memcache ... 似乎是个好主意,但由于 memcache 被谷歌“通过内存压力驱逐”,我们面临着可能的会话损坏问题。这是否意味着我们只剩下以下选项:

  1. 将所有会话数据存储在 cookie 中
  2. 将所有会话数据写入 datastore 和 memcache,然后只从 memcache 中读取

有人有其他想法吗?

0 投票
4 回答
4831 浏览

python - Python:GQuery 结果集上的 DISTINCT(GQL、GAE)

想象一下,您在 Google App Engine 数据存储区中有一个实体,为匿名用户存储链接。您想要执行以下不受支持的 SQL 查询:

相反,您可以使用:

如何最有效地使用 Python过滤结果,使其返回 DISTINCT 结果集?如何计算 DISTINCT 结果集?

0 投票
5 回答
2319 浏览

python - 可以集成 Google AppEngine 和 Google Code 以进行持续集成吗?

任何人对如何/是否可以集成 Google 代码提交以导致 Google AppEngine 部署最新代码有任何想法?

我有一个简单的 Google AppEngine 项目的源代码托管在 Google Code 上,如果我每次提交 Subversion 时,AppEngine 都会反映最新的提交,我会很高兴。我不介意现场是否有问题,因为该项目主要供个人使用和学习。

任何人都对如何绑定到代码存储库的颠覆提交和/或如何启动到 AppEngine 的部署有任何想法?理想情况下,该解决方案不需要我的任何手动操作,也不需要我机器上的任何类型的服务器/侦听器软件。