Google App Engine - 选择正确的方向

时间:2012-07-12 19:13:05

标签: python django google-app-engine webapp2

我在2周前使用GAE,WebApp2,Jinja2和WTForms开始进行Web开发。

我读了几篇文章,讨论,用gae(udacity)观看了关于web开发的课程,并开始了一个小项目。

现在我对网络开发缺乏经验,我不知道应该选择哪条路径。

最近几天我用GAE和webapp2探讨了一下。它非常容易使用。但我不得不说我只使用webapp2有一个请求处理程序。 (发布/获取)

对于模板我使用了Jinja2,这也是自我解释。

现在Reddit的Steve说,使用轻量级框架而不是非常大的框架总是更好,因为你有更多的控制权,你可以更容易扩展。

但我还是想调查Django-nonrel。我知道Django在GAE中是有限的。

但说实话,我甚至不知道Django为我做了什么,(与使用Jinja2的WebApp2相比)

现在回答我的问题:

你会建议初学者看看Django吗?如果我更有经验=>替换一些Django代码。

坚持使用WebApp2 +“一些模板引擎”?

PS:我不问哪个框架是最好的,我只是想要一些考虑点。

3 个答案:

答案 0 :(得分:4)

简短的回答是,你可以采取任何一种方式,会有一些优点/一些缺点,但我认为这两者都不是纯粹的胜利。

以下是使用Django-nonrel作为newb的一些优点:

  • django文档通常很不错。因此,它可以帮助您快速掌握一些最佳实践
  • CSRF保护
  • 表单验证
  • 会话
  • AUTH
  • i8n tools
  • 你花更少的时间把各种基本的东西放在一起,django对你来说有很多。
  • 你可以节省FB / Twitter auth这样的东西的时间,因为那里有第三方django包。
  • Tastypie是一个很好的休息api包,虽然你可能不需要新的端点
  • django测试框架很棒,但Django 1.4实时测试框架(甚至更大)对App Engine不起作用。我昨天刚刚发现并且正在努力(迄今为止毫无结果)破解它的工作。
  • django有一个简单的工具可以将数据库转储到json。这对于测试目的,加载/保存夹具非常有用。你不得不想办法自己这样做。

缺点:

  • Django-nonrel不是最新最好的。首先,你不会有ndb的好处。
  • 虽然django文档很棒,但django-nonrel文档不是,所以你必须弄清楚设置部分。我一直想做一个写作,但没有时间。
  • 学习django所花费的时间也可以用来学习别的东西,但我认为django学习的时间可能少于几个不同的部分。
  • 有些人说django超重,加载时间更长。 django-nonrel包括所有django-contrib插件。我删除了很多这些并且没有加载时间问题。 (手指交叉)
  • 有更多的人使用webapp2 + jinja,我没有看到太多单独的人在讨论django-nonrel特定问题,尽管那些确实非常有用。另一方面,如果遇到泛型django问题,那就有很多django用户。

我可以说的一件事是,如果你是为django写的,那就很难逐渐摆脱它。在你摆脱它之前,你必须更换你正在使用的所有部分,否则,你仍然必须包括大部分包。

使用我所知道的django的另一种选择是gae-boilerplate。它尝试做同样的事情,但有各种不同的部分。尽管如此,它仍然需要一个好的测试框架。

答案 1 :(得分:4)

如果您对webapp2(python 2.7的轻量级官方谷歌应用引擎框架)感兴趣,我建议您从样板或示例项目开始。我个人推荐https://github.com/coto/gae-boilerplate。我环顾四周,我认为它是目前最全面,最积极维护和最新的webapp2样板。

样板项目有助于快速启动更多传统网站和网络应用程序,但我认为即使你想要处理像web服务或在线API这样不那么传统的东西,它也值得一看。

如果缺少一两个功能,您可以随时将它们添加到问题列表中,或者像我一样自己提供。上面提到的Flask Engine是烧瓶路线的一个很好的替代品。

答案 2 :(得分:2)

我将解决您的第二个问题/部分,关于是否使用webapp2或其他模板框架。我处于类似的位置,在编写个人项目时学习Python和GAE,并寻找一个代码库,使其易于学习,推断并在使用GAE环境方面高效。我没有试过webapp2,但发现了另一个值得一看的框架。当然,你的里程会有所不同。

具体来说,我在GitHub上发现了Flask-Engine作为框架,而PyCharm作为我的编辑器。 Flask-Engine可以在这里找到:

https://github.com/zachwill/flask-engine

可以在这里找到PyCharm:

http://www.jetbrains.com/pycharm/

Flask-Engine包括Flask,HTML5Boilerplate和所有集成的许多其他有用工具。以及一个简单的待办事项应用程序和电子邮件页面。进入代码以了解添加代码的位置相当容易。它还包括所有GAE配置文件,以使Flask和其他工具正常工作。我发现它是交钥匙:我将文件上传到一个空文件夹,在PyCharm中添加了一个项目,并调用了一个Web浏览器。

我发现Flask-Engine唯一不可思议的问题是,至少在Mac OSX(Lion)上,设置代码并不准确:您将模板代码下载到空项目文件夹。设置代码表示您将文件下载到项目中;在我将空项目文件夹路径添加到命令行之前,这种方法对我不起作用。然后在PyCharm(和GAE App Launcher)中添加一个指向现在填充的项目文件夹的项目。

对于Python,PyCharm非常有用,因为它为GAE项目以及Django提供工具以及一整套调试工具。我发现99美元的个人许可证还可以。有15或30天的免费试用期。我试过Eclipse但发现它太复杂了。当然还有其他很棒的IDE。