什么是开始学习Django的最好方法?

我真的想build立一个Web应用程序; 一些简单的东西,例如一个神奇宝贝卡的数据库?

我听说过关于Django的优秀的东西。 哪里会是最好的开始?

这是我在博客上发表的一篇文章,回答了几乎完全相同的问题 。 它包含了许多已经给出的答案以及一些额外的build议,其中一些是我个人的意见,其他的可能与我不同。 希望有人认为它有用:

build立一些东西

我能给的最好的build议是从build立一些东西开始。 Django的一个典型的“Hello world”是一个博客网站,我也build议从此开始。 Django框架试图使通​​用任务变得非常简单和容易,而一个具有简单博客function的网站就是一个典型的例子。 一个stream利的Djangonaut可以在不到一个小时的时间内通过使用所有可用的库来编写一个简单的博客网站,因此这是一个很好的开始和感受Django如何做的事情。

Django书

当然,在开始编写代码之前,您需要先使用Django运行系统并学习基础知识。 Django Book是一个很好的资源。 作者有一段时间没有做这个工作,或者保持它的最新版本(由于它的年轻性质,Django变化相当频繁),但是它可以在网上免费获得并且强烈推荐。 请阅读关于如何设置系统的前几章,Django的所有部分如何与MVC模型融合在一起,并为Django如何简单地完成其他框架令人不快的工作感到惊讶。

Django教程和文档

Django网站上有很多很棒的教程,一旦你了解了Django的基本知识,就几乎不需要任何东西了。 文档也很棒,去看看你自己。

select一个Django版本

对于一个初学者来说,select一个Django版本并坚持下去会是一个好主意。 在撰写本文时,大多数Django 1.2和Django 1.3都使用了两个主要版本,以及开发版本(Django开发人员在版本作为主要版本发布之前对其进行修改的版本) )。 开始时不要使用开发版本 – 你一定会遇到麻烦。

最重要的是,Django已经存在了大约四五年,而且大部分分散在Google上的教程都将针对Django 1.0和1.1。 这很好,大部分都不是问题,但是从那以后,Django增加了很多function,这使得大部分教程和代码片断都被废弃了。 在可能的地方尝试坚持针对您的版本的教程。

一旦你select了一个版本,确保你总是阅读正确版本的Django文档 。 您会在右侧边栏和您所在页面的url中看到,您可以更改正在查看的版本。 Django的文档是非常出色的,远远超出了其他任何地方,作者非常注意说明哪些function是新版本的,哪些在以后的版本中不推荐使用。 只要确保你意识到这一点,这样你就不会浪费无数的时间去尝试一些你的版本中没有的东西。

知道DRY是什么意思,并且练习它

DRY:“不要重复自己”是Django背后的核心原则之一。 如果你发现自己在Django中复制粘贴任何东西,几乎肯定有更好的方法来做到这一点。 大多数程序员会从经验中知道为什么这样的重新编译是不好的,但总之,如果代码中的某些内容稍后需要更改,或者某处出现了错误,则只需要在一个地方进行更改即可。 这很有用,因为如果有多个地方需要更改,并且您忘记了这个实例,那么您将会在代码中引入错误和错误。

远离基于类的视图

Django 1.3新增了一个基于类的generics视图。 如果你不知道这是什么意思,不要担心。 关于Django的绝大多数教程和书籍都不会提及,主要是因为它太新颖了。 这是一个function,旨在减less创造意见的重审,从而遵循DRY原则。 虽然它在某种程度上这样做了,但它也引入了很多黑魔法,并且需要经常在Django源代码中搔痒以查看发生了什么。 对于初学者来说,这并不理想。 另外,现在提供给基于类的视图的错误消息常常指向完全错误的方向。 远离它们,而是在开始时使用function性视图,因为大多数教程都会告诉你。 当你对Django习惯了一些,并且发现function性视图的重新编排令人沮丧时,请查看基于类的通用视图。

不要开始在Google App Engine上托pipe

虽然GAE对于可扩展的Django应用程序来说是免费的,但它也对login过程引入了很多限制,而且这方面的文档非常稀less。 作为一个初学者,不要从这条路线开始,因为很多普通的Django文档都会突然不适用,而且你不知道该怎么做。 相反,从epio , gondor.io或其他许多服务开始。 Epio仍处于testing阶段,但也有一个免费托pipe选项(每月使用量达到一定数量)。 由两个Django核心开发人员开发,我强烈build议使用它们 – 这与Ruby on Rails的Heroku相当。 Ep.io正在closures,但Heroku最近还添加了一个Python托pipe选项 。

使用StackOverflow,提出问题

我的最后一条build议是在任何时候卡住的时候使用StackOverflow。 首先,他们已经有了可以梦想的任何问题的答案。 如果你不能在网站上find它,find你的问题的答案的好方法是追加“stackoverflow”作为您的谷歌search条件的一部分。 否则,发布一个问题,让Django社区帮助你。 除了阅读Django代码(你也应该这样做)之外,它被certificate是我在过去几年里学习Django黑暗面的最好资源。 祝你好运,享受!

通过阅读Django教程构build您的第一个Django Web应用程序。

通读Django书籍 。

build立一些东西 任何东西。 保持相对简单和短暂,但开始build设,并确保你完成build设。 你在那里的项目可能是完美的。

阅读文档和书籍当然是非常有帮助的,但是像任何编程一样,真正学习Django的唯一方法就是用它来练习。 build立一些有形的东西是实现这一目标的唯一途径。

如果你不了解Python,那么就开始你的学习吧。 当他们尝试学习一个框架而不知道至less是关于它的编程语言的时候,人们往往会感到非常沮丧。

在获得了Django / Python的基本知识之后,开始阅读Django的例子 ,很棒的文章。

官方的Django网站是学习和参考的好地方。 有一个很棒的教程,对初学者非常有用。 简单的愚蠢的Django教程是我写的一个愚蠢和简单的教程。

尝试尽可能多的项目工作。 制作您自己的stream行网站,如脸谱,微博,imgur等版本。就像任何事情一样,练习使得完美!

下面的屏幕截图/教程是从头开始创buildWiki的一个好方法:

  • 学习Django:在20分钟内创build一个Wiki

之后,您可以通过优秀的django文档站点上提供的教程和文档。

你可以尝试“ 在4小时内学习Django – 快速入门教程

有关Django的kickstart,请参阅:

http://slash4.de/blog/learn-django-in-4-hours

它旨在让你尽快开始使用Django(没有安装例程等)。 它显示了Django所有最重要的部分 – 当然不可能在4个小时内涵盖Django的所有方面,但这不是本课程的目的。