您的位置:首页 > 编程语言 > Go语言

Django Book 中文翻译版(第二版) 第二章

2009-04-14 10:42 483 查看
第二章 DJANGO入门安装PYTHONPYTHON版本

DJANGO的安装有多步操作,因为现代的WEB开发环境包含多个分离的部分。在本章,我们将带你学习如何安装这个框架以及它所依赖的其它部分。
因为DJANGO是用PYTHON写的代码,所以它可以运行在任何PYTHON能运行的环境中,包括手机中!但是本章只包含了DJANGO的普通安装指南。我们假设你将可安装在桌面电脑/笔记本或服务器。
在第二十章中,我们将讨论如何把DJANGO及应用部署到生产环境!

DJANGO本身完全用PYTHON所写,所以安装这个框架的第一步就是确保PYTHON已正确安装。

DJANGO的核心代码可以在PYTHON版本2.3到2.6之间的任意版本上运行。DJANGO的可选模块GIS要求PYTHON版本2.4到2.6才能运行。

你完全可以自由选择这些版本,如果你不确定用哪个版本,那就选2.x系列的最新版本吧:2.6。尽管DJANGO可以在PYTHON版本2.3到2.6之间的任意版本上运行,但是新版本的PYTHON会有性能的提升和新的语言特性,这些特性你可能希望在你的应用中使用。另外,某些你用到的DJANGO的第三方组件可能也会要求更新的版本。所以请使用尽可能使用新版本的PYTHON。

DJANGOPYTHON3.0

写作本书时,PYTHON3.0已经发布,但是DJANGO还不支持它。PYTHON3.0对语言本身引入了许多不后兼容的改变,并且,我们期待的许多PYTHON库和框架,包括DJANGO,需要花上一段时间才能跟上PYTHON的步伐!

如果你是初学PYTHON,对是学习PYTHON2.x还是PYTHON3.x感到困惑,那么我们建议你还是先学习PYTHON2.x系列。

安装
如果你正在使用LINUX或Mac OS X,你可能已经安装了PYTHON。在命令行提示符下输入python(在OS X中选择Application/Utilities/Terminal),如果你看如下提示,就表示你已经安装了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.
>>>

否则,你需要去下载和安装PYTHON,它的安装也很快易,具体请参考http://www.python.org/download/。

安装DJANGO安装官方发布版http://www.djangoproject.com/download/。要安装它,首先下载一个tar包,它的名字看起来像这样:Django-1.0.2-final.tar.gz,然后解压并运行setup.py install,就像你安装其它PYTHON库一样!
下面是在UNIX系统下的步骤:
在任何时候,DJANGO都有两个不同的版本可用:一个最新的官方发布版本和一个最新的试验版本。安装哪一个需要自己权衡,是想要安装一个稳定并经测试的DJANGO,还是安装一个包含了最新特性的(可能你想给DJANGO做出点贡献,但是要付出稳定性的代价)?

我们建议你安装官方发布版本,但是知道有一个开发版本存在也很重要,因为它会在文档和社区成员之间被提到!

官方发布版有一个版本号,例如1.0.3和1.1。最新版本可以在此下载:


tar xzvf Django-1.0.2-final.tar.gz


cd Django-*


sudo python setup.py install


如果你正在使用一个包含DJANGO包的Linux系统上,那你就最好直接使用这个包。并且,这个包也会像系统中的其它包一样获取安全更新!

在Windows系统上,建议你使用7-Zip(http://www.djangoproject.com/r/7zip/)解压.tar.gz文件。解压之后,请用管理员权限启动一个DOS命令行,然后进入刚解压的目录,运行如下命令:
python setup.py install安装试验版最新的DJANGO试验版是一个正在开发中的版本,可以从DJANGO的SVN中获取。你应该好好考虑一下是否要安装这个版本,如果你对它的不稳定心中有数,或者你想对DJANGO做出自己贡献,那就没有问题。SVN是一个免费开源的版本控制系统,与CVS类似,DJANGO团队使用它来管理DJANGO的基代码及修改。你可以使用一个SVN客户端来获取DJANGO最新的源代码,任何时候你都可以更新本地的DJANGO版本代码,即签出,以便保持与DJANGO开发者所做的修改与改进同步。请牢记,使用这个版本,不保证在某一时刻应用崩溃,尽管如此,DJANGO开发团队会尽力保持在版本库中的代码在生产站点中运行时更加稳定。要获取最新的DJANGO代码,请按下列步骤操作:


确保你已经安装了SVN客户端。你可以免费从http://subversion.tigris.org/获取,可以在http://svnbook.red-bean.com/找到详细的文档说明。


使用下列命令签出:
svn co http://code.djangoproject.com/svn/django/trunk djtrunk


创建site-packages/django.pth,然后将目录djtrunk加到这个文件中,或者更新PYTHONPATH,让它指向djtrunk.


在系统的PATH变量中加入djtrunk/django/bin。这个包括了一个实用的管理工具例如django-admin.py。


从版本库下载并按步骤操作之后,不需要运行任何命令,你已经手动做完了所有的安装工作。

因为DJANGO库经常会有一些修改,包括BUG修复和新特性添加,所以你可能需要时常更新你的代码。要更新代码,先进入djtrunk目录,然后运行命令svn update即可。当运行此行命令时,SVN将连结http://code.djangoproject.com/,确定是否DJANGO的代码发生了变化,如果自上次更新后发生了变化,它会将有变化的代码更新到本地版本中,相当智能。如果你使用了SVN库,你应该知道如何找出你正在使用的库的版本,在社区寻求帮助或如果你对这个框架提交了自己的改进的时候版本是很重要。此时,你需要告诉其它人库的版本,也就是你正在使用的库的修订号和变化集。要找出它,请在命令行下进入djtrunk目录中输入命令“svn info“,找到在版本(Revision)之后的数字,这个数字随着DJANGO的变化递增,无论是BUG修复,特性添加,文档修改或其它任何变化。在一些DJANGO的社区成员中,如果你说“我自从某个版本(很低的版本号)就开始使用DJANGO了,那是相当受人尊敬的。测试DJANGO安装为了检验手动安装是否正确,需要花点时间来测试一下。在命令行下,切换到任意目录(不是DJANGO的安装目录),输入python启动PYTHON的交互式解释器。如果安装成功,应该能导入django模块:

>>> import django

>>> django.VERSION

(1, 0, 'final')

交互式解释器示例PYTHON交互式解释器是一个命令行程序,可以进行交互式的PYTHON编程。要启动它,在命令行下输入python即可!贯串本书,许多功能示例都在PYTHON交互式解释器中进行。你可以通过到三个相连的大于符号(>>>)识别,三个大于符号就是PYTHON交互式解释器的提示符!如果你从本书中复制某些例子,请不要复制这大于符号!多行语句在交互式解释器下,开头部分会有3个点(...)填充,例如:这三个点在除第一行之外的其它行前面,由PYTHON解释器自动添加,它们并不是输入的一部分,这里包含它们是完全与解释器的输出一致的,如果你要复制一些示例,请不要复制这些点。

>>> print """This is a
... string that spans
... three lines."""
This is a
string that spans
three lines.
>>> def my_function(value):
...     print value
>>> my_function('hello')
hello

设置数据库到此,你可能想要用DJANGO进行WEB应用编写了,因为DJANGO唯一的先决条件PYTHON已经能正常运行了。然而,你可能想开发一个数据库驱动的WEB站点,若如此,就需要先来配置一下数据库服务器。如果你急于用DJANGO进行开发,可以跳过此节,转到“启动项目”部分,但是请记住,本书的所有例子都假设你的数据库设置正常,可以运行!DJANGO支持四种数据库引擎:


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

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

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

Oracle
(http://www.oracle.com/)

大多数情况下,这里列出的引擎都可以与DJANGO核心框架良好工作。(一个需要注意的例外是DJANGO的可选模块GIS,它与PostgreSQL一起工作时会比与其它数据库引擎有更强大的功能。)如果你不限于现有系统,可以自由的选择数据库,我们推荐你用PostgreSQL,它在成本、特性、速度和稳定性之间有着完美的衡量。设置数据库共有两步:


首先,安装和配置好数据库服务器。这一过程超出了本书的范围,但是每种数据库都在其官方站点上有大量文档可供参考。(如果你正使用一个共享主机,可能已经安装和配置好数据库了)


然后,需要安装数据库所对应的PYTHON库。这是一个PYTHON到数据库接口的第三方代码。在接下来的部分,我会大概讲述每种数据库的具体需求。


如果你只想用用DJANGO,而不想安装一个数据库服务器,可以考虑使用SQLite。如果你正在使用PYTHON2.5,那么它是数据库支持列表中唯一一个不需要上面操作步骤的。它在文件系统中将数据读写到一个文件中,PYTHON2.5已经内建了对它的支持。在Windows系统上,获取数据库驱动的二进制版本是相当无趣的。如果你想要跳过这些操作,建议你使用PYTHON2.5,它内建了对SQLite的支持。PostgreSQL一起使用DJANGO如果你要使用PostgreSQL,你需要安装psycopg或psycopg2包,安装地址在:http://www.djangoproject.com/r/python-pgsql/。建议psycopg2,因为它较新,已经成为主要的开发版本,并且更易安装。无论你要使用哪个版本,下面的信息对你都会有用。如果你要在Windows上使用PostgreSQL,你可以在http://www.djangoproject.com/r/python-pgsql/windows/找到psycopg的二进制预编译包。如果你在使用Linux,检查是否你的包管理系统提供了名为“python-psycopg2”, “psycopg2-python”, “python-postgresql”或类似的包。

SQLite 3一起使用DJANGO如果你要使用PYTHON 2.5或更高版本,很幸运,不需要安装特殊的数据库,因为PYTHON附带了对SQLite的支持,可以跳到下一节。如果你在PYTHON 2.4或更低的版本上工作,你需要SQLite3而不是版本2,从http://www.djangoproject.com/r/sqlite/下载安装,pysqlite包需要从http://www.djangoproject.com/r/python-sqlite/下载,确保pysqlite的版本是2.0.3或高。在Windows系统上,你可以跳过上面的安装,因为只需要一个指向pysqlite二进制包的静态链接即可。在Linux上,检查是否包管理器提供了名称为“python-sqlite3”, “sqlite-python”, “pysqlite”或类似的包!MySQL一起使用DJANGODJANGO要求MySQL 4.0或更高版本。3.x系列版本不支持内篏子查询和其它的标准SQL语句。需要在http://www.djangoproject.com/r/python-mysql/安装MySQLdb包。在Linux上,检查是否包管理器提供了名称为“python-mysql”, “python-mysqldb”, “mysql-python”或类似的包!不带数据库使用DJANGO正如之前提到的,DJANGO实际上并不需要数据库。如果你要用它提供不带数据库的动态页面,它也完全可以胜任。不管怎么说,你都要牢记,一些随DJANGO一起附带的额外工具都会要求有数据库,如果你选择不使用数据库,那么你可能也同时无法使用那个额外工具。(贯串本书我们都在讲解这些工具)启动项目一旦你完成PYTHON、DJANGO和数据库数据库及其支持包(可选),那么就可以进行下一步了:创建一个项目来开始一个DJANGO应用开发。DJANGO的一个项目是由一系列的设置组成,包括数据库配置、DJANGO特定的选项和此应用的特定设置。如果这是你第一次使用DJANGO,请注意一些初始化的设置。创建一个新的目录来开始工作,比如:/home/username/djcode/。

目录应该放哪?

如果你有PHP的背景,你可能想要将所有代码放到WEB服务器的根目录(例如在/var/ww)。对于DJANGO来说,不要如此做,把任何代码放到WEB根目录中都不好,

因为这样做可能会让WEB服务器上的源代码有暴露出去的风险,所以不好。

所以把你的代码放到WEB服务器根目录之外的地方。

进入到你创建的目录,运行命令:django-admin.py startproject mysite命令结果会在当前之下创建一个名为mysite的目录。

提示

如果你通过setup.py实用程序安装DJANGO,django-admin.py应该位于你的系统路径中。

如果你使用的是版本库,你会在djtrunk/django/bin下找到django-admin.py,它可能会被经常使用,可以考虑把它到系统路径中。在UNIX系统中,在/usr/local/bin下创建一个符号链接可以达到此目的,使用命令:

sudo ln -s
/path/to/django/bin/django-admin.py /usr/local/bin/django-admin.py

在WINDOWS上,请把它放到环境变量PATH中。

如果你安装的DJANGO是来自于Linux自带的,django-admin.py可能会被django-admin代替。

如果你在运行命令“django-admin.py startproject”时看到“Permission denied”这样的错误消息,你可能需要修改一下这个文件的属性。进入到'django-admin.py‘所在的目录(例如/usr/local/bin),运行命令chmod +x django-admin.py。Startproject命令将创建一个包含四个文件的目录:

mysite/
__init__.py
manage.py
settings.py
urls.py

这些文件的含义如下:


__init__.py:PYTHON看到此文件会把mysite目录看作一个包(一组PYTHON模块)。它是一个空文件,通常你不要在此文件中添加任何东西。


manage.py:一个命令行程序,通过它可以以不同方式与DJANGO项目交互。输入python manage.py help可以看看它能做什么。你永远都不要编辑此文件,它完全是为了方便而创建到此处。


settings.py:DJANGO项目的设置/配置。可以打开它看看都有什么样的设置及缺省值。


urls.py:DJANGO项目的URL配置。可以把它看作一个DJANGO站点的目录,目前暂是空的。


尽管这些文件体积不大,但是已经组成了一个可以运行的DJNAGO应用。运行开发版服务器为了检验我们的安装是否正确,现在来运行DJANGO开发服务器看看初始应用的运行状态!DJANGO开发服务器是一个内建的、轻量级WEB服务器,在站点开发过程中可以使用它来快速开发,不用考虑正式服务器的配置(例如APACHE),直到应用开发完成。这个服务器会自动监视代码的变化并重新载入,让你更方便的修改代码而不用重启任何东西。要启动服务器,进入项目目录(cd 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.

这表示服务器已经在本地计算机的8000端口上启动了,可以并且只有这台计算机可以访问它。此时在WEB浏览器中访问http://127.0.0.1:8000/,你会看到“Welcome to Django“的页面,在柔和的蓝色背景上,显示”It worked!“最后一点,关于这个服务器值得一提的重要一点是,尽管这个服务器对于开发很方便,但是不要有任何想把它用在正式环境的想法。在某一时刻这个服务器只能稳定的处理一个请求,并且没有任何类型的安全检查。当要把你的站点部署到正式服务器时,请参阅第二十章的相关信息。

修改开发服务器的主机或端口

默认情况下,runserver命令会在服务器的8000端口启动,只监听本地的连接请求。若要修改端口,需要在启动时加上参数:

python
manage.py runserver 8080

通过指定IP地址,可以告诉服务器不只监听本地连接。如果想要与团队成员共享此开发站,点,这个功能非常有用。IP地址0.0.0.0告诉服务器监听任何与本地计算机的网络连接地址。

python manage.py runserver 0.0.0.0:8000当运行此命令时,本地网络上的其它计算机可以通过输入你的IP地址来访问这个DJANGO站点,例如:http://192.168.1.103:8000/。(注意:你可能需要查看一下你的网络设置来确定你在本地网络上的IP地址。Unix用户可能输入ifconfig来查看,Windows用户则使用ipconfig。

接下来现在一切就绪,开发服务器也正在运行,接下来要开始学习DJANGO WEB页面的基本知识了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息