google-app-engine - Google App Engine 和 django-nonrel

标签 google-app-engine django-nonrel

我不久前发现了 django 并编写了几个应用程序。然后我发现了 Google App Engine 并且很高兴能试一试,尤其是因为它立即特别提到了 python 和 django。

我使用 GAE hello World 应用程序确认了 GAE 与 python 2.7 的安装。然后我在使用 django-nonrel 测试应用程序时遇到了麻烦。谷歌搜索各个错误随后结束了向 python 路径添加了大约 7 个不同的东西,直到遇到一个我无法解决的错误。

从表面上看,我使用 Windows 似乎有些偏离常规,所以我在 VM 上安装了一个新的 Ubuntu 副本并重新开始。已验证 python 2.7,将 GAE 放在推荐的位置克隆了几个包并将它们符号链接(symbolic link)到提供的测试应用程序文件夹中。当我 ./manage.py runserver 它再次踢出相同的错误消息,使我在 Windows 中处于停顿状态。

我的系统级问题是 django-nonrel 由于其主要开发人员的辞职而失去了动力。 GAE 并没有停滞不前,两者之间正在形成差距。这个观察是否正确?如果是,社区将走向何方?还好吗? (http://code.google.com/p/kay-framework/)

它是否使用 Google 自己的最小 python 框架工作?是 Java 而不是 python 吗?

我怀疑有成千上万的人在做 GAE 项目,但我并不觉得这条路是人迹罕至的。有很多人仍然相信 django-nonrel 吗?我意识到我可能会遗漏一些非常简单的东西,比如路径变量或其他东西,但如果我无论如何都应该学习其他东西,我不想继续寻找它。

最佳答案

我正在为一个我已经工作了几个月但尚未启动的项目积极使用 django-nonrel。在过去的一周里,我从一位目前在 django-nonrel 上工作的开发人员那里得到了一个建议,尝试运行 django 1.4 的最新分支。请注意,GAE SDK 未正式提供 django 1.4。不过在这一点上,感觉 django-nonrel 正在向前推进,而它的文档却被遗忘在尘埃中。您可能需要一些开发技巧才能使用最新最好的。

django-nonrel 可能已经失去了一些动力,但我不认为它已经死了。不过要注意的一件事是,大多数活跃的开发人员都将它与 mongo-db 作为后端一起使用。这现在不是问题,但我担心可能会碎片化为 mongo-db 版本和 appengine 版本 - 希望这不会发生。

我在 SO 和邮件列表上关注 App Engine 线程后的看法是,大多数人都在使用 Java。 python用户常用的平台是webapp2+app engine native models+Jinja2或者类似的模板库。

根据我使用 django-nonrel 的经验:

优点:

  • 我想要的第 3 方 python 库有效,这为我节省了大量时间。例如,django-social-auth 几乎不费吹灰之力就让我登录了 facebook 和 twitter。

  • 让您有可能从 AppEngine 切换到另一个 python+mongo 平台。

缺点:

  • 旧版本不支持祖先查询,但现在在 1.4 分支上支持。

  • 你是你自己的依靠。还有一些其他非常有帮助的人,但我不得不跳进代码库来解决问题和添加功能。我已经这样做过几次(比如当 App Engine SDK 发布时有错误),但这种情况很少见。

  • django 的加载时间比 webapp2 要长一些,但是如果您删除 django.contrib 中不使用的所有内容,这也不错。

  • 你没有得到 ndb 的好处。您错过了 ndb 实体缓存。但是,我发现我更经常使用未缓存 ndb 的查询,因此这可能会或可能不会是一个很大的损失。

关于google-app-engine - Google App Engine 和 django-nonrel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10766950/

相关文章:

python - 通过pycharm运行google app engine django项目时导入错误

python - django non-rel/在 App Engine 上管理每个字段的索引

python - 我可以在 Google App Engine 中使用 Django 的邮件 API 吗?

python - 在 App Engine 应用程序初始化时执行代码

mysql - 我应该在客户端代码中存储什么作为索引?

google-app-engine - Google Cloud Storage 上存储分区的最大大小是多少?什么时候应该为一个 Web 应用程序使用多个存储桶?

python - 如何在 Google App Engine 中使用自定义 Python 库和应用程序?

python - 在 Google 应用引擎的 django-nonrel 中使用 manage.py 时出现异常 AttributeError 消息

python - 如何安装 Django-nonrel (Django 1.5)?

java - google appengine 不支持 FileOutputStream