`

The Django Book - 4 [学习]

阅读更多
建立数据库
在这一点,你可以使用Django为Web应用作一个好的开始,因为Django唯一的严格的先决条件是安装了Python。然而,有些时候你将需要开发数据库驱动的Web网张,在这种情况下,你需要配置数据库服务器。

如果你仅仅想要以Python作为消遣,请跳过“开始工程”这一部分——但是记住这本书的所有例子都假设你已经创建了数据库。

Django支持四种数据库引擎:
  • PostgreSQL (http://www.postgresql.org/)
  • SQLite 3 (http://www.sqlite.com/)
  • MySQL (http://www.mysql.com/)
  • Oracle (http://www.oracle.com/)

通常情况下,所有的引擎使用核心Django框架都是一样的工作机制。(显著的异常Django可选的GIS支持,使用PostgreSQL比其它的数据库功能会强大的多。)如果你没有被绑定到任何老系统中并且可以自由的选择后台数据库,我们推荐使用PostgreSQL,在消耗、特征、速度和稳定性方面有良好的平衡。

按照两个步骤创建数据库:
  • 首先安装和配置服务器。这一步超出了本书的范围,但是四种后台数据库在它们的站点都有丰富的文档。(如果你共享一台主机,也许有人已经为你建好了数据库)
  • 然后,为你的后台数据库安装Python库。这是第三方的代码,它允许Python与数据库连接。 以下的内容,我们概括了每个数据库的需求。


如果你仅仅是使用Django消遣不想安装数据库服务器,请考虑使用SQLite。在支持的数据库列表中SQLite是独特的,如果你使用Python2.5或者更高的版本它不要求上面的步骤。它仅仅读和写它的数据到文件系统单个文件中,并且Python2.5以及更高的版本对它提供了内置支持。

在Windows上,可能无法取得数据库驱动。如果你是急于加入的,我们推荐你使用Python2.5以及对SQLite的内置支持。

使用PostgreSQL
如果你正在使用PostgreSQL,你将会需要安装psycopg或者psycopg2包,它可以从http://www.djangoproject.com/r/python-pgsql。我们推荐使用psycopg2,作为新的版本是容易安装的。总之,注意你使用的版本是1还是2;稍后你会需要这个信息。

如果你正在Windows上使用PostgreSQL,你能从http://www.djangoproject.com/r/python-pgsql/windows/ 上找到预编译的二进制文件psycopg。

如果你是在Linux上,检查你的分布式包管理系统是否提供了叫做"python-psycopg2","psycopg2-python", "python-postgresql"或者与之相似的内容。

使用SQLite
如果你正在使用2.5或者更高的版本,你是幸运的:没有特定的数据库要求安装,因为Python装有SQLite。直接跳到下一部分。
……

使用MySQL
Django要求使用MySQL 4.0及其以上版本。版本3.0不支持嵌套子查询和相当部分的标准查询。
你也需要从http://www.djangoproject.com/r/python-mysql/安装MySQLdb包。
如果你是使用Linux,检查你的版本包管理系统提供了叫做“python-mysql”,"python-mysqldb","mysql-python"或者相似的包。

使用Oracle
Django使用Oracle数据库服务器9i版本或者更高的版本。
如果你使用Oracle,你需要从http://cx-oracle.sourceforge.net/安装cx_Oracle库。使用4.3.1或者更高的版本,但是避免使用版本5.0由于5.0版本的驱动有BUG。

没有数据库的Django
如前提及的,Django并不需要数据库。如果你仅想要使用动态网页而不点击数据库,那是非常好的。
记住,一些与Django绑定的工具要求使用数据库,因此如果你选择不使用数据库,你将会忽略这些特征。(贯穿全书,我们都强调了这些特征)

启动工程
一旦你安装了Python,Django和可选的数据库服务器/库,你就能通过创建工程在开发Django应用中迈出第一步。
针对一个Django实例,工程就是配置的集合,包括数据库配置,Django规范的集合以及应用规范设置。
如果这是你第一次使用Django,你将会需要关注一下初始启动。创建新的目录开始工作,大概像这样一个目录 /home/username/djcode/ 。

注意:这个目录应该放在什么位置?
如果你使用PHP,你大概习惯于将代码放在Web服务器的文档根目录下(如:/var/www)。使用Django,你不需要做这些。将任何Python代码放入你的Web服务器的文档根目录并不是好的注意,因为这样做的话,你会存在一种可能的风险,人们将能通过Web看到你的源文件。那是相当不好的。
放置你的代码到文档根目录之外的一些目录。

进入你创建的目录,并且运行命令 django-admin.py startproject mysite 。这将会在你的当前目录创建一个名叫mysite的目录。

注意:如果你通过setup.py安装了Django,django-admin.py应该是在你的系统路径上。如果你在使用trunk,你会在djtrunk/django/bin目录中找到django.py。因为你将会经常使用django-admin.py,考虑增加它到你的系统路径。在Unix上,使用命令 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的安装目录并且运行命令 chmod +x django-admin.py。
命令startproject创建包含4个文件的目录:
mysite/
    __init__.py
    manage.py
    settings.py
    urls.py

文件介绍如下:
  • __init__.py:对Python来说,必需的文件,Python会将mysite目录作为一个包(例如Python的组模块)。它是一个空文件,通常不会给它增加任何的内容。
  • manage.py:命令行工具。它让你可以使用各种方法同Django工程交互。输入python manage.py help 或得你想要做的事情。你绝对不需要编辑它;它出现在目录中纯粹是为了便利。
  • setting.py:Django工程的Setting/configuration。看这个文件的内容,可以了解配置的含义
  • urls.py:Django工程的URL。将它作为Django站点的“table of contents”。此刻,它是空的。


尽管它们的比较小,但是这些文件已经构成了可工作的Django应用。

运行开发服务器
为了取得安装后更多的积极反馈,让我们运行Django开发服务器去观察准应用的行为。
Django开发服务器(也可以在命令行启动它之后调用“runserver”)是内置的,能在开发站点的过程中使用的轻量级web服务器。它包括在Django中因此你能快速开发站点,直到你为生产做好准备时,不需要配置你的生产服务器(例如,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”页面。工作了!

最后,在继续之前关于开发服务期的重要提示需要提及。尽管这个服务器对开发是便利的,抵制任何想要将它集成到生产环境的诱惑。开发服务器能在一定时间内可信赖的处理单一请求,但是它没有经过任何的安全认证。启动你站点的时间,请阅读12章——“怎样部署Django”获取更多的信息。

注意:改变开发服务器主机和端口
默认情况下,命令runserver在端口8000启动服务器,仅仅监听本地连接。如果你想要改变服务器端口,适用命令行参数传递它:
python manage.py runserver 8080


通过制定IP地址,你能告诉服务器允许非本地连接。如果你想要同你们组的其他成员共享开发站点这尤其是帮助的。IP地址0.0.0.0告诉服务器舰艇任意网络接口:
python manage.py runserver 0.0.0.0:8000

当你已经做了这些的话,局域网内另外的电脑将能在Web浏览器通过你的IP地址访问Django站点,例如:http://192.168.1.103:8000/ 。(注意你将需要检查网络设置确认你在局域网内的IP地址)。Unix用户,尝试在命令行提示符运行"ifconfig"取得信息。Windows用户,尝试“ipconfig”)

下一章
现在你已经安装了每件事情,并且开发服务器在运行,你准备去了解使用Django的基本Web页面。

未完待续……
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics