从appengine到完全django的下一步是什么?

时间:2011-01-08 09:56:45

标签: python django google-app-engine hosting

我是编程的新手,我一直在使用appengine来帮助我学习python和一般编码。我变得越来越快,我一直很喜欢它。)

Appengine让我只是潜入编写我的应用程序并获得有效的实时内容(参见http://www.7bks.com/)。但我意识到,我继续学习更多关于appengine的知识,我越是限制自己并将自己锁定在一个系统中。

我想继续开发全django(因为django看起来非常酷!)。我接下来的步骤是什么?为了让您了解我的知识水平:

  • 我不是unix用户
  • 我不熟悉命令行控件(我仍然通过appengine SDK完全使用appengine / python)
  • 我从来没有编过python以外的任何东西,除了appengine以外的任何地方
  • 我知道SQL这个词,但不知道MySQL究竟是什么或者如何使用它。

所以,特别是:

  • 学习使用完整的django / python需要学习哪些技能?
  • 如果我要去其他地方举办,我想我需要学习一些系统管理员类型的技能(甚至可能是unix?)。有没有提供轻松托管(如appengine),但支持django?
  • 我听说heroku的这些伟大的事情我正在考虑转换到RoR并去那里

我很欣赏我可能还没有准备好摆脱appengine但我是一个非常热情的学习者(http://www.7bks.com/blog/179001)并且如果我知道它会喜欢它我需要学习的所有步骤,所以我可以着手学习它们。目前,我甚至不知道我需要学习哪些步骤!

非常感谢你。对不起,这不是一个特定的编程问题,但我环顾四周,并没有为我的经验水平的人找到一个好的方法,我认为其他人会欣赏我们需要学习的东西的良好路线图启动并运行。

谢谢,

汤姆

PS - 如果有人在伦敦并且有人向我展示那些超级棒的绳索:)

5 个答案:

答案 0 :(得分:2)

是什么让您认为自己被锁定在一个平台上?您是否知道Google的App Engine SDK是开源的?此外,是否有大学和其他组织正在构建将在Google环境之外使用App Engine SDK的平台? Amazon EC2还能够以有限的容量运行App Engine的SDK。我说锁定可能不是正确的用法。

此外,我相信随着时间的推移,AppEngine将继续改善。谷歌是互联网的领导者;他们做了很多伟大的事情,并将继续这样做。我相信任何坚持使用他们的平台作为服务的人都将在未来几年中体验到这些巨大的利益。

如果您的移动推理纯粹是学术性的,我建议您开始一个新项目。离开AppEngine的SDK类似于在已经构建的应用程序上从一个框架切换到另一个框架。与任何框架或平台一样,为了将应用程序从平台A成功迁移到平台B,必须处理依赖关系。

答案 1 :(得分:2)

django-nonrel可以在Google AppEngine上运行Django:http://www.allbuttonspressed.com/projects/django-nonrel

除此之外,还存在一些像djangy https://www.djangy.com/

这样的云优惠

使用这两个选项,您可以专注于Django和Python编程,而不必关心系统管理员的东西。

在django主页上有一个很好的教程来开始django开发:http://docs.djangoproject.com/en/1.2/intro/tutorial01/

答案 2 :(得分:2)

首先,您可以通过学习一门新语言来完成一些RoR工作。但是,我不知道你现在还在学习,这对你现在是否完全有益。我暂时坚持使用Python和Django(或AppEngine),直到你能掌握一些更先进的概念。然后,通过各种方式,学习新语言将是非常棒的。

从AppEngine迁移到Django。没有很多不同的东西。定义模型的方式类似,但定义的类型不同。正如您所提到的,托管是另一个考虑因素。

应该有很多基于Apache的托管选项(mod_wsgi就是你所追求的)。特别是Django已经看到了相当多的人气,托管通常会出现在流行的框架中。

我认为你不需要知道太多系统管理员的东西。这将取决于您可以找到的托管类型。数据库也是如此。托管服务提供商通常提供预先配置的数据库,因此您不必过于担心。

Django和许多其他框架一起提供了一个ORM(对象关系映射器),它通过调用对象上的方法并访问它们的属性来抽象出必须编写SQL。我建议学习一点SQL来尽可能地理解它。

Django tutorial非常好!如果您决定选择Django路线,我强烈建议您完成整个过程。开发服务器捆绑在一起,因此您可以立即尝试工作而无需担心提供商。一旦你有想要与世界分享的东西,你就可以担心当时的托管。

我开始使用Windows进行Django开发,这很容易。您需要执行的命令行工作量很少。真。不需要担心,因为本教程涵盖了您需要知道的所有4个左右的命令。

Django hosting提供了托管服务提供商的链接,但我不确定该列表是如何更新的。

Django入门非常简单。一旦你想要托管它,就会涉及更多的工作 - 但这可能会在以后发生。摩擦力很小。按照教程,它将指导您完成运行服务器,设置数据库(捆绑免费的数据库)以及编写第一个应用程序的编码。

答案 3 :(得分:2)

  

学习使用完整的django / python需要学习哪些技能?

由于您尚未描述该应用,因此无法轻易回答这个问题。你必须详细记下技术堆栈 - 或者你永远不会知道你需要什么技能。

技能列表主要来自您的技术选择。所以写下你的技术选择。 (这是配置管理的一部分,如果你离开GAE,你将需要一项重要的技能。)

既然您选择谈论自己而不是技术选择,我只能猜测您正在使用的技术以及您需要的技能。

这是一个常见的技术堆栈。

  1. 从技术上讲,操作系统并不重要。大多数托管环境使用开源GNU / Linux,因为许可证很便宜。你也可以做到这一点。您可以从VMWare开始并下载一个不错的Linux发行版。或者,您可以购买一台非常便宜的PC并直接从可以下载和刻录的DVD映像安装Linux。

    我的公司要求我使用他们给我的Windows PC。所以我在Windows中开发并在VMWare Linux(实际上是Fedora 14)中进行测试

    要学习Linux,请先下载并安装。然后找一个教程。然后停止使用Windows并边做边学。在Windows和Linux之间来回翻转很困难。我能做到,因为我不太了解Windows。我将Windows视为一个超复杂的IDE,我试图忽略各种非标准的非POSIX怪癖。

  2. RDBMS。 Python附带SQLite。对于很多应用程序,它工作正常。它的工作原理是因为网站往往会对查询产生沉重的负担并且更新/插入更多,因此SQLite运行良好。 MySQL很好。它易于在Windows以及其他操作系统上安装和运行。

    关于Django的好处是你需要知道很少的SQL。很少。

    但是,您需要了解一下有关使用MySQL的“数据控制语言”(授予,撤销和创建用户)。你不会创造很多用户。但是你确实需要创建一些才能让事情运行起来。此外,随着数据库的成熟,您通常需要了解一点“数据定义语言”(Drop Table)。

    您需要知道如何备份和恢复数据库。这绝对是至关重要的。

    请参阅数据库管理员教程以开始使用。

    如果您的应用程序确实使用了大量复杂的数据,那么您需要购买有关数据库设计的真实书籍,以便了解Django模型的实际工作方式。您不需要成为SQL专家,但它确实有助于了解数据库内部的实际情况。

  3. Application Server。我们将Apache与mod_wsgi模块一起使用。有很多选择。托管服务的要求和许可条件各不相同。有些人预先配置了Apache,mod_wsgi和Django。有些人没有。有些人不允许修改Apache配置。有些人。您可能不需要了解太多,因为您可能会找到一个处理细节的托管服务。

    Apache教程到处都是。 mod_wsgi很简单;一旦你理解了Apache的运作方式,mod_wsgi就很明显了。

  4. 既然你有工作,可能你知道HTML和CSS。这些都是重要的技能,但你可能已经拥有它们。

  5. 由于您的工作正常,您可能对配置管理以及如何控制更改了解很多。这并不明显,许多人做错了。如果您不了解CM,您应该找到一些关于配置管理和变更控制的书籍或文章。

  6. 既然你有工作的东西,你也可能对质量保证,单元测试和相关主题了解很多。如果您没有完整的单元测试套件,那么在开始对产品的下一个版本进行严格编码之前,您应该开始学习单元测试。

  7. 错误跟踪,问题报告,功能请求和其他管理技能也很重要。我不知道你是否拥有它们或者没有它们。或者你正在使用什么工具。如果你自己工作,你不需要很多形式。但是,即使您是一个单独的开发人员,这些也是关键技能。工作站上的Sticky-Notes可以正常工作。重要的是管理错误和功能的技能。

答案 4 :(得分:1)

嘿汤姆, 我建议您可以进行合理的评估,仔细列出选择的优缺点。

我不后悔的方式是物理机架服务器(2006-07),转移到虚拟主机(2008),现在转移到GAE(2009年 - 当前)。看到费率新功能被添加到GAE和成本效益是更多的原因留下来。我同意django可能需要更多的东西,就像在我的案例表单预览中一样,使用GAE进行表单验证很难或者很难设置。

我尝试过RoR,很快就认为RoR需要更多的代码才能用更少的代码来完成相同的GAE。 同样使用GAE,您绝对没有可以破坏的硬件。如果您移动到机架服务器或虚拟主机,有些地方可以免费获得5 GB主机,但是当您用完5 GB并且可能需要再次迁移时,您可能没有计划。

MySQL已存在超过10年,是一种完全不同的系统。可以在MySQL中保存blob,但是你不认为blobstore GAE有更好的效果吗?

如果您选择使用MySQL迁移到解决方案,则可以从GAE导出数据并使用approcket等工具将其导入MySQL。

亲切的问候/ Niklas R