Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么在谷歌应用程序引擎上使用Django?_Python_Django_Google App Engine - Fatal编程技术网

Python 为什么在谷歌应用程序引擎上使用Django?

Python 为什么在谷歌应用程序引擎上使用Django?,python,django,google-app-engine,Python,Django,Google App Engine,在研究GoogleAppEngine(GAE)时,很明显,使用Django在GAE上用Python进行开发非常流行。我一直在网络上搜寻关于使用Django的成本和收益的信息,以了解它为什么如此流行。虽然我已经找到了关于如何在GAE上运行Django的各种来源和各种方法,但我还没有找到任何关于Django为什么比使用Google提供的webapp框架更可取的比较分析 需要明确的是,在GAE上使用Django对于拥有Django中现有技能集(毫无疑问,大多数Python web开发人员)或Djang

在研究GoogleAppEngine(GAE)时,很明显,使用Django在GAE上用Python进行开发非常流行。我一直在网络上搜寻关于使用Django的成本和收益的信息,以了解它为什么如此流行。虽然我已经找到了关于如何在GAE上运行Django的各种来源和各种方法,但我还没有找到任何关于Django为什么比使用Google提供的webapp框架更可取的比较分析

需要明确的是,在GAE上使用Django对于拥有Django中现有技能集(毫无疑问,大多数Python web开发人员)或Django中现有代码(其中使用GAE更像是一种移植练习)的开发人员来说非常有用。然而,我的团队正在评估GAE在一个全新项目中的使用,我们现有的经验是使用TurboGears,而不是Django

当BigTable库取代了Django的ORM、会话和身份验证都发生了必要的更改,并且Django的模板(如果需要的话)可以在不使用整个Django堆栈的情况下使用时,很难确定Django为什么对开发团队有益

最后,很明显,如果我们以后想离开GAE,需要一个平台来应对人口外流,那么使用Django确实具有提供“退出战略”的优势


我非常感谢您的帮助,指出为什么在GAE上使用Django比使用webapp更好。我对Django也完全没有经验,因此详细介绍GAE的较小功能和/或便利对我来说也是很有价值的。

我有使用Django而不是GAE的经验。根据我使用Django的经验,这是一个非常简单的设置,部署过程对于web项目来说非常简单。当然,我必须学习Python才能真正掌握一些东西,但在一天结束时,我会在一个项目中再次使用它。这几乎是2年前的事了,才达到1.0,所以我觉得我的知识有点过时了


如果您担心平台的变化,那么我认为这将是一个更好的选择。

如果您确信GAE适合您,Django可能不是您的正确选择。这两种技术的优势并没有很好地结合在一起——你完全失去了Django在GAE上的许多优秀orm,如果你真的使用它,你编写的代码并不真正直接适合bigtable和GAE的工作方式

GAE的一点是,它通过强制您编写易于从头开始扩展的代码来获得巨大的可伸缩性。您不能做很多伸缩性差的事情(当然,您仍然可以编写伸缩性差的代码,但可以避免一些陷阱)。折衷的办法是,如果您使用类似Django的东西,而Django是为不同的环境设计的,那么您最终将围绕框架进行编码

如果您看到自己出于任何原因离开GAE,那么投资基础设施对您来说是一个问题。为bigtable编码意味着很难迁移到不同的体系结构(尽管apache项目正在通过Hadoop项目的HBase组件为您解决这个问题)。从GAE过渡到GAE仍然需要很多工作

除了作为谷歌产品和酷词,使用GAE背后的驱动力是什么?是否有理由认为使用mediatemple的产品进行扩展不太可能对您有效?您确定GAE缩放的方式适合您的应用程序吗?如果您希望达到这一性能领域,那么与专用服务器相比,成本如何?与更传统的负载平衡服务器设置相比,您能使用GAE提供的工具很好地解决问题吗

综上所述,除非您绝对需要GAE提供的近乎荒谬的扩展,否则我个人建议不要让特定的服务构成您选择的框架。我喜欢Django,所以我想说你应该用它,但不要在GAE上

编辑(2010年6月): 作为稍后对该评论的更新: 谷歌已经发布了针对GAE的类似sql的功能,这些功能不是免费的,但可以让你轻松地运行sql风格的命令来生成数据报告

此外,GAE查询语言即将进行更改,这将以更简单的方式实现复杂查询。请看来自谷歌I/O 2010的视频

此外,在Code2010项目的夏季,有一些工作正在进行中,这些工作应该不会给django核心带来sql支持,并且通过扩展,使使用GAE变得更加容易

GAE作为一个托管平台正变得越来越有吸引力

编辑(2011年8月):

而谷歌只是通过改变定价结构大大提高了该平台大多数用户的成本。锁定问题变得更好了(如果您的应用程序足够大,您可以部署apache替代方案),但对于大多数应用程序,运行服务器或VPS部署更便宜


很少有人真的有大数据问题。“哦,我的创业公司可能有一天会扩大规模”不是一个大数据问题。现在就开始构建东西,并使用标准工具将其发布。

我在GAE上做过很多项目。一些在django,一些在他们的正常框架中

对于一些小事情,我通常使用它们的普通框架来简化和快速。喜欢,或者

对于大型项目,我使用django来利用所有优秀的中间件和插件。喜欢

基本上,我的试金石测试是,这需要我花2周多的时间来编写并成为一个真正的软件项目吗?如果是这样的话,请使用django来获取插件


它还有一个额外的好处:如果你的项目不适合BigTable,那么你很快就会退出(就像我一样)

我不能回答这个问题,但你可能想看看web2py。它在许多方面与Django相似,但其数据库Abs