Django,像其他的框架一样,它是由一门基础的编程语言来构建的,而django是由python来完成的。许多人对django,甚至对 python还刚刚开始学习,python自然的语法结构和django简洁(energy-saving: 节能,译为简洁更好些)的特性结合起来,使得django看起来它使用了一些元语言的特征一样,尽管它还不完全算是元语言(which isn't the case)。

关于在Django里能做些什么,要获得正确的理解必须先要有一个基本的概念,那就是Django是简单的python程序,就像你的应用一样。在python中使用的任何东西,同样也能在django中使用,几乎没有任何其他的限制。

这也意味着django app不仅能使用python全部的标准库,而且还能使用更加广大的第三方的库和工具。他们其中有一些的接口,django提供了,对于更多情况,已经存在的代码和文档也能直接使用,从而能快速的构建程序并运行起来。

这本书的后面章节,会涉及到一些附加的工具,会谈到如何把它们集成到django应用中去。在本书中可以看到,是没有任何问题的。可以感觉到使用python工具可以很方便地支持你的商业计划,而且在本书中提到的技巧也可以集成到你的应用当中去。

尽管学习python超出了本书的范围,但是django使用了一些python高级的特性。在本章节,我将讨论许多这种高级特性,它们将有助于你来理解运用python将会让每个人实现自己的目标变得更加容易。

python怎样构建Class

Django依赖的一些python高级特性都和python创建class有关。大多数开发人员都认识到class是(常用的机制)(意译),而且也应该是这样。但是既然它是django核心,它就是我们这里开始探险的基础。

当 python解释器遇到一个class定义,它只是读取内容,就像其他代码一样。然后python为这个class创建一个新的名字空间,执行它里面的所 有代码,把任何已经分配的变量写入那个新的名字空间。class定义通常包含变量,方法和其他的class,所有这些是这个class名字空间中的基本分 配单元。但是,这里的任何有效的代码都是允许的,包括打印到控制台的输出,写日志文件,甚至激活GUI界面。

一旦内容执行完毕,python将有一个class object(类对象),它位于已经定义的名字空间中(通常是模块中的全局名字空间),然后它就能被传入或者调用去创建这个类的实例。

>>> class NormalClass(object):
...     print 'Loading NormalClass...'
...     spam = 'eggs'
...     print 'done'
...
Loading NormalClass...
done
>>> NormalClass
<class '__main__.NormalClass'>
>>> NormalClass.spam
'eggs'

正如你看到的,代码在类定义中就开始执行,一旦这个Class准备好,分配的变量,如类属性,就可以显示出来。