0

两周前我开始使用 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:我不问哪个框架最好,只是想提几点考虑。

4

3 回答 3

4

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

样板项目有助于启动更多传统的网站和 web 应用程序,但我认为即使你想从事一些不那么传统的事情,比如 web 服务或在线 api,它也值得一看。

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

于 2012-07-16T00:55:52.893 回答
4

简短的回答是,您可能会选择任何一种方式,都会有一些优点/一些缺点,但我认为这两种方式都不是纯粹的胜利。

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

  • django 文档通常都很好。因此,它可以帮助您快速掌握一些最佳实践
  • CSRF 保护
  • 表单验证
  • 会话
  • 授权
  • i8n 工具
  • 你花更少的时间把各种基本的部分放在一起,django 有很多适合你的。
  • 您可以在 FB/Twitter auth 之类的东西上节省时间,因为有第三方 django 包。
  • Tastypie 是一个很好的 rest api 包,虽然你可能不需要它与新的 Endpoints
  • 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。它试图做同样的事情,但有各种不同的部分。尽管 imo 仍然需要一个好的测试框架。

于 2012-07-12T20:44:59.013 回答
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 和许多其他有用的工具,它们都集成了。以及一个简单的待办事项应用程序和电子邮件页面。进入代码以了解在何处添加代码相当容易。它还包括使 Flask 和其他工具工作的所有 GAE 配置文件。我发现它是交钥匙的:我将文件上传到一个空文件夹,在 PyCharm 中添加了一个项目,然后调用了一个 Web 浏览器。

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

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

于 2012-07-13T15:36:34.570 回答