安装数据库

这会儿,你可以使用django写web应用了,因为django只要求python正确安装后就可以跑起来了。 不过,当你想开发一个数据库驱动的web站点时,你应当需要配置一个数据库服务器。

如果你只想玩一下,可以不配置数据库,直接跳到 开始一个project 部分去,不过你要注意本书的例子都是假设你配置好了一个正常工作的数据库。

Django支持四种数据库:

大部分情况下,这四种数据库都会和Django框架很好的工作。 (一个值得注意的例外是Django的可选GIS支持,它为PostgreSQL提供了强大的功能。)如果你不准备使用一些老旧系统,而且可以自由的选择数据库后端,我们推荐你使用PostgreSQL,它在成本、特性、速度和稳定性方面都做的比较平衡。

设置数据库只需要两步:

  • 首先,你需要安装和配置数据库服务器本身。 这个过程超出了本书的内容,不过这四种数据库后端在它的网站上都有丰富的文档说明。 如果你使用的是共享主机,可能它们已经为你设置好了。

  • 其次,你需要为你的服务器后端安装必要的Python库。 这是一些允许Python连接数据库的第三方代码。 我们会在之后的章节简要介绍,对于某一种数据库来说,它单独需要安装的东西。

如果你只是玩一下,不想安装数据库服务,那么可以考虑使用SQLite。 如果你用python2.5或更高版本的话,SQLite是唯一一个被支持的且不需要以上安装步骤的数据库。 它仅对你的文件系统中的单一文件读写数据,并且Python2.5和以后版本内建了对它的支持。

在Windows上,取得数据库驱动程序可能会令人沮丧。 如果你急着用它,我们建议你使用python2.5。

在 Django 中使用 PostgreSQL

使用 PostgreSQL 的话,你需要从 http://www.djangoproject.com/r/python-pgsql/ 下载 psycopg 这个开发包。 我们建议使用psycopg2,因为它是新的,开发比较积极,且更容易安装。 留意你所用的是 版本 1 还是 2,稍后你会需要这项信息。

如果在 Windows 平台上使用 PostgreSQL,可以从 http://www.djangoproject.com/r/python-pgsql/windows/ 获取预编译的 psycopg 开发包的二进制文件。

如果你在用Linux,检查你的发行版的软件包管理系统是否提供了一套叫做python-psycopg2,psycopg2-python,python-postgresql这类名字的包。

在 Django 中使用 SQLite 3

如果你正在使用Python 2.5版本或者更高,那么你很幸运: 不要求安装特定的数据库,因为Python支持和SQLite进行通信。 向前跳到下一节。

如果你用的是Python2.4或更早的版本,你需要 SQLite 3而不是版本2,这个可从http://www.djangoproject.com/r/sqlite/pysqlitehttp://www.djangoproject.com/r/python-sqlite/ 确认一下你的pysqlite版本是2.0.3或者更高。

在 Windows 平台上,可以跳过单独的 SQLite 二进制包安装工作,因为它们已被静态链接到 pysqlite 二进制开发包中。

如果你在用Linux,检查你的发行版的软件包管理系统是否提供了一套叫做python-sqlite3,sqlite-python,pysqlite这类名字的包。

在 Django 中使用 MySQL

django要求MySQL4.0或更高的版本。 3.X 版本不支持嵌套子查询和一些其它相当标准的SQL语句。

你还需要从 http://www.djangoproject.com/r/python-mysql/ 下载安装 MySQLdb

如果你正在使用Linux,检查下你系统的包管理器是否提供了叫做python-mysql,python-mysqldb,myspl-python或者相似的包。

在Django中使用Oracle数据库

django需要Oracle9i或更高版本。

如果你用Oracle,你需要安装cx_Oracle库,可以从http://cx-oracle.sourceforge.net/获得。 要用4.3.1或更高版本,但要避开5.0,这是因为这个版本的驱动有bug。

使用无数据库支持的 Django

正如之前提及过的,Django 并不是非得要数据库才可以运行。 如果只用它提供一些不涉及数据库的动态页面服务,也同样可以完美运行。

尽管如此,还是要记住:

Django 所捆绑的一些附加工具 一定 需要数据库,因此如果选择不使用数据库,你将不能使用那些功能。 (我们将在本书中自始至终强调这些功能)