第二章 入门

优质
小牛编辑
126浏览
2023-12-01

良好的开端胜过一切。后续章节将充斥着 Django 框架的细节和拓展,不过现在呢,请相信我们,这一章还是蛮有意思的。

Django 安装很简单。因为所有 Python 可运行的地方 Django 都可以运行,所以可以通过多种方式配置 Django 。这一章中,我们将介绍一些常见的 Django 安装方案。第 20章中将介绍如何将 Django 部署为产品。

Python 安装

Django 由百分百的纯 Python 代码编写而成,因此必须在系统中安装 Python 。Django需要 2.3 或更高版本的 Python。

如果使用的是 Linux 或 Mac OS X ,系统可能已经预装了 Python 。在命令提示符下 (或 OS X 的终端中) 输入 python ,如果看到如下信息,说明 Python 已经装好了:

Python 2.4.1 (#2, Mar 31 2005, 00:05:10)

[GCC 3.3 20030304 (Apple Computer, Inc. build 1666)] on darwin

Type "help", "copyright", "credits" or "license" for more information.

>>>

不然,如果看见类似 "command not found" 的错误,你就不得不下载安装 Python 了。参 阅 http://www.python.org/download/ 获取相关入门知识。Python 的安装简单而快捷。

Django 安装

本节中,我们介绍两种安装方式:官方发布版安装和通过 Subversion 安装。

官方发布版安装

大多数人会考虑从 http://www.djangoproject.com/download/ 下载安装最新的官方发布版。Django 使用了 Python 标准的 distutils 安装法,在 Linux 平台可能包括如下步骤:

  1. 下载 tar 安装包,其文件名可能会是 Django-0.96.tar.gz 。

  2. tar xzvf Django-*.tar.gz 。

  3. cd Django-* 。

  4. sudo python setup.py install 。

在 windows 平台下,我们建议使用 7-Zip 来处理各种格式的压缩文档,包括 “.tar.gz” 格式。7-Zip 可以从 http://www.djangoproject.com/r/7zip/ 下载得到 。

切换到另一个目录并启动 python 。如果一切就绪,你就可以导入 django 模块了:

>>> import django

>>> django.VERSION (0, 96, None)

注意

Python 交互解释器是命令行窗口的程序,通过它可以交互式编写 Python 程序。要启动它 只需运行 python 命令。本书所有的 Python 示例代码均以在交互解释器中输入的方式展示。那三个大于号( >>> )是 Python 的提示符。

通过 subversion 安装 Django

如果想体验有一定风险的新特性,或者想为 Django 贡献代码的话,应该从 Subverion 仓库下载安装 Django。

Subversion 是一种与 CVS 类似的免费开源版本控制系统,Django 开发团队使用它管理

Django 代码库的更新。你可以使用 Subversion 客户端获取最新的 Django 源代码,并可任何时候使用 local checkout 更新本地 Django 代码的版本,以获取 Django 开发者所做的最近更新和改进。

最新和最好的 Django 代码通常叫做 trunk(主流) 。Django 开发团队就是使用主干代码来运行产品级站点,并全力确保其稳定性。

遵循以下步骤以获取最新的 Django 主流代码:

  1. 确保安装了 Subversion 客户端。可以从 http://subversion.tigris.org/ 免费下载该软件,并从 http://svnbook.red-bean.com/ 获取出色的文档。

  2. 使用 svn co http://code.djangoproject.com/svn/django/trunk djtrunk 命令检出主流代码。

  3. 创建 site-packages/django.pth 并将 djtrunk 目录添加进去,或者更新

    PYTHONPATH 设置,将其指向 djtrunk 。

  4. 将 djtrunk/django/bin 加入系统变量 PATH 中。该目录中包含一些像 django-admin.py 之类的管理工具。

提示:

如果之前没有接触过 .pth 文件,你可以从

http://www.djangoproject.com/r/python/site-module/ 中获取更多相关知识。

从 Subversion 完成下载并执行了前述步骤后,就没有必要再执行 python setup.py

install 了,你刚才已经手动完成了安装!

由于 Django 主干代码的更新经常包括 bug 修正和特性添加,如果真的着迷的话,你可能每隔一小段时间就想更新一次。在 djtrunk 目录下运行 svn update 命令即可进行更新。当你使用这个命令时,Subversion 会联络 http://code.djangoproject.com ,判断代码是否有更新,然后把上次更新以来的所有变动应用到本地代码。就这么简单。

安装数据库

使用 Django 的唯一先决条件是安装 Python。然而,本书所关注的是 Django 的亮点之一——基于数据库的网站开发,因此你必须安装某种类型的数据库来存储数据。

如果只是想开始摆弄 Django ,可以跳到《开始一个项目》小节。但请相信我们,到最后你还是会想要安装一个数据库。本书中所有例子都假定你安装了一个数据库系统。

本书写作时,Django 支持 3 种数据库引擎:

  • PostgreSQL (http://www.postgresql.org/)

  • SQLite 3 (http://www.sqlite.org/)

  • MySQL (http://www.mysql.com/)

有人正在努力让它能够支持 SQL Server 和 Oracle 。Django 官方网站会经常发布所支持数据库的最新消息。

出于本书所讨论范围之外的原因,我们非常偏爱 PostgreSQL,因此我们将第一个提到它。当然,这里所列出的引擎和 Django 都配合得一样好。

作为开发工具,SQLite 特别值得注意。它是一种非常简单的进程级数据库引擎,无需任何服务器安装或配置工作。如果你只是想摆弄一下 Django ,它是到目前为止最容易安装的,甚至已经被包括在 Python 2.5 的标准类库之中。

在 Windows 平台上,获取数据库二进制驱动是件很棘手的工作。因为你刚开始接触

Django,我们推荐使用 Python 2.5 及其对 SQLite 的内建支持。编译二进制驱动是件令人沮丧的事。

在 Django 中使用 PostgreSQL

使用 PostgreSQL 的话,你需要从 http://www.djangoproject.com/r/python-pgsql/

下载 psycopg 这个开发包。留意你所用的是 版本 1 还是 2,稍后你会需要这项信息。

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

在 Django 中使用 SQLite 3

如果使用 2.5 及更高版本的 Python ,你无需再安装 SQLite 。但如果使用的是 2.4 或者更低版本的 Python,你所需要的 SQLite 3 不是从

http://www.djangoproject.com/r/sqlite/ 下载到的版本 2 以及从

http://www.djangoproject.com/r/python-sqlite/ 下载 pysqlite 。必须确保使用的是

      1. 或者更高版本的 pysqlite 。

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

        在 Django 中使用 MySQL

        Django 需要 4.0 或者更高版本的 MySQL,3.x 版不支持嵌套子查询以及其它一些相当标准的 SQL 语句。你还需要从 http://www.djangoproject.com/r/python-mysql/ 下载安装 MySQLdb 。

        使用无数据库支持的 Django

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

        尽管如此,还是要记住:Django 所捆绑的一些附加工具 一定 需要数据库,因此如果选择不使用数据库,你将不能使用这些功能。 (我们会在全书中标出这些功能。)

        开始一个项目

        项目 是 Django 实例一系列设置的集合,它包括数据库配置、Django 特定选项以及应用程序的特定设置。

        如果第一次使用 Django,必须进行一些初始化设置工作。新建一个工作目录,例如

        /home/username/djcode/ ,然后进入该目录。备忘

        如果用的是 setup.py 工具进行的 Django 安装, django-admin.py 应该已被加入了系统路径中。如果是从 Subversion 检出的代码,则可以在 djtrunk/django/bin 中找到它。因为会经常用到 django-admin.py ,可以考虑把它加入系统搜索路径。在 Unix 上,你可以用 sudo ln -s /path/to/django/bin/django-admin.py /usr/local/bin/django-admin.py这样的命令从 /usr/local/bin 中建立符号连接。在 Windows 平台上则需要更新 PATH 环境变量。

        运行 django-admin.py startproject mysite 命令在当前目录创建一个 mysite 目录。让我们看看 startproject 都创建了哪些内容:

        mysite/

        __init__.py manage.py settings.py urls.py

        包括下列这些文件:

        • __init .py :让 Python 把该目录当成一个开发包 (即一组模块)所需的文件。

        • manage.py :一种命令行工具,可让你以多种方式与该 Django 项目进行交互。

        • settings.py :该 Django 项目的设置或配置。

        • urls.py :该 Django 项目的 URL 声明,即 Django 所支撑站点的内容列表这个目录应该放哪儿?

有过 PHP 编程背景的话,你可能习惯于将代码都放在 Web 服务器的文档根目录 (例如

/var/www 这样的地方)。而在 Django 中,你不能这样做。把任何 Python 代码放到 Web服务器的文档根目录中都不是个好主意,因为这样一来,你就要冒着别人透过页面直接看到代码的风险。这对于安全可不是件好事。

把代码放置在文档根目录 之外 的某些目录中。

开发服务器

Django 带有一个内建的轻量级 Web 服务器,可供站点开发过程中使用。我们提供这个服务器是为了让你快速开发站点,也就是说在准备发布产品之前,无需进行产品级 Web 服务器(比如 Apache)的配置工作。该开发服务器会监测代码变动并将其自动重载,这样一来,你可快速进行项目修改而无需作任何重启。

如果还没有进入 mysite 目录的话,现在进入其中,并运行 python manage.py runserver 命令。你将看到如下输出:

Validating models...

0 errors found.

Django version 1.0, using settings 'mysite.settings' Development server is running at http://127.0.0.1:8000/ Quit the server with CONTROL-C.

尽管对于开发来说,这个开发服务器非常得棒,但一定要打消在产品级环境中使用该服务器的念头。在同一时间,该服务器只能可靠地处理一次单个请求,并且没有进行任何类型的安全审计。发布站点前,请参阅第 20 章了解如何部署 Django 。

更改主机或端口

默认情况下, runserver 命令在 8000 端口启动开发服务器,且只监听本机连接。要想要更改服务器端口的话,可将端口作为命令行参数传入:

python manage.py runserver 8080

还可以改变服务器监听的 IP 地址。要和其他开发人员共享同一开发站点的话,该功能特别有用。下面的命令:

python manage.py runserver 0.0.0.0:8080

会让 Django 监听所有网络接口,因此也就让其它电脑可连接到开发服务器了。

既然服务器已经运行起来了,现在用网页浏览器访问 http://127.0.0.1:8000/ 。你应该可以看到一个欢快的淡蓝色所笼罩的 Django 欢迎页面。一切正常!

下一章讲什么?

既然一切都已经安装完毕,开发服务器也已经运行起来了,下一章中,让我们编写一些基础代码,演示如何使用 Django 提供网页服务。