【问题标题】:Google App Engine - Choosing the right direction [closed]Google App Engine - 选择正确的方向 [关闭]
【发布时间】:2012-07-12 14:59:10
【问题描述】:

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

【问题讨论】:

  • 是的,谢谢戴夫,我已经看过这个了。这就是我发帖的原因。因为他说 Django 带有模板引擎、表单处理器、请求处理程序——我已经有了 webapp2、jinja2 和 wtforms。还是我错了?

标签: python django google-app-engine webapp2


【解决方案1】:

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

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

  • django 文档通常都很好。因此,它可以帮助您快速掌握一些最佳做法
  • CSRF 保护
  • 表单验证
  • 会话
  • 授权
  • i8n 工具
  • 您花费更少的时间将各种基本部分放在一起,django 为您提供了很多。
  • 您可以在 FB/Twitter auth 之类的东西上节省时间,因为有第三方 django 包可以做到这一点。
  • Tastypie 是一个很好的 rest api 包,尽管新的 Endpoints 可能不需要它
  • django 测试框架很棒,但 Django 1.4 实时测试框架(甚至更好)不适用于 App Engine。我昨天才发现这一点,并且正在尝试(到目前为止没有结果)破解它来工作。
  • django 有一个简单的工具,可以将 DB 转储为 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 仍然需要一个好的测试框架。

【讨论】:

    【解决方案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 中添加了一个项目,然后调用了一个网络浏览器。

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

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

    【讨论】:

    • Flask 看起来很有趣,我也在使用 Pycharm,但我无法让它工作。仍在弄清楚他在那里做了什么。我收到一堆错误,(使用 Windows)
    • 可能你已经这样做了,但我最早的步骤之一是尝试通过 PyCharm 安装 Flask 和其他包,使用 File > Template Settings > Project Interpreter > Python Interpreters > 在中选择适当的解释器中心名单。然后在中心列表下方添加包。我已经安装了 Flask、Jinja2、WTForms、Werkzeug 和其他软件包。也许这就是问题所在?
    【解决方案3】:

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

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

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

    【讨论】:

    • 哇,谢谢,这太棒了。唯一的“坏”是他使用 sha512 而不是 bcrypt。
    • 我会将 bcrypt 添加到问题列表中以供团队查看 - 如果您想自己贡献,我们也很乐意为您提供帮助!
    • 是的,还有几个错误,比如加盐。我会在下周解决这些问题。
    猜你喜欢
    • 1970-01-01
    • 2017-10-12
    • 2012-04-14
    • 2012-12-22
    • 1970-01-01
    • 2013-03-24
    • 2011-05-06
    • 2011-02-08
    • 2013-11-09
    相关资源
    最近更新 更多