Django 快速实战入门(二):组建开发环境
作者:Hily 原始链接:http://hily.me/blog/2008/11/learning-django-ch2/
版权声明:可以转载,转载时务必以超链接形式标明文章原始出处和作者信息及版权声明
开发系统的选择
Django 和 Linux 都是开源运动的优秀产物,使用开源产品,在构建一个应用时,我们会有更多选择,也更加灵活。因此没有任何理由让我选择在 Windows 下开发和部署基于 Django 的应用。
笔者使用的 Linux 系统为 Gentoo Linux:
gentoo ~ # uname -a
Linux gentoo 2.6.25-gentoo-r9 #2 SMP Mon Nov 10 13:39:19 CST 2008 i686 AMD Athlon(tm) 64 X2 Dual Core Processor 4000+ AuthenticAMD GNU/Linux
安装 Python
Django 使用 Python 代码编写而成,因此需要先确认你的系统中是否已安装 Python。
大多数的 Linux 中都已经预装了 Python,可以使用以下命令查看是否已经安装:
gentoo ~ # python -V
Python 2.4.4
安装 Django
从 http://www.djangoproject.com/download/ 上下载当前的最新官方发布版本:Django-1.0.2-final.tar.gz。
然后解压并进行安装:
gentoo ~ # tar zxf Django-1.0.2-final.tar.gz
gentoo ~ # cd Django-1.0.2-final
gentoo Django-1.0.2-final # python setup.py install
接着你可以在 Python 命令窗口中查看当前已安装的 Django 版本:
gentoo ~ # python
Python 2.4.4 (#1, Jun 15 2008, 16:32:23)
[GCC 4.1.2 (Gentoo 4.1.2 p1.0.2)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>> django.VERSION
(1, 0, 2, 'final', 0)
>>>
安装 MySQL
Django 支持 PostgreSQL、SQLite 3 和 MySQL 等多种数据库,其中 MySQL 是我用过的最为满意的数据库。如果您没有其它特殊需求的话,建议您选用 MySQL。在 Gentoo 下的安装指令为:
gentoo ~ # emerge mysql
安装完 MySQL 后,默认密码为空,需要执行以下指令设置 root 用户的密码:
gentoo ~ # mysqladmin -uroot -p -h localhost password hily
如果有需要,可以修改 /etc/mysql/my.cnf 对 MySQL 进行配置。
然后启动 MySQL:
gentoo ~ # /etc/init.d/mysql start
测试是否安装成功:
gentoo ~ # mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 194
Server version: 5.0.60-log Gentoo Linux mysql-5.0.60-r1Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
安装 MySQLdb
要在 Django 中使用 MySQL,你还需要安装 MySQLdb:
http://sourceforge.net/projects/mysql-python
下载后安装(需要 setuptools 支持):
gentoo ~ # tar zxf MySQL-python-1.2.2.tar.gz
gentoo ~ # cd MySQL-python-1.2.2
gentoo MySQL-python-1.2.2 # python setup.py install
新建一个 Django 项目
运行以下命令,新建一个项目:
gentoo ~ # django-admin.py startproject myblog
运行后会在当前目录下新建一个名为 myblog 的目录,结构如下:
gentoo ~ # ls myblog/
__init__.py manage.py settings.py urls.py
包含四个文件:
- __init__.py
表示该目录是一个包。
- manage.py
Django 项目的管理工具,后文多处会用到这个工具。
您可以先使用以下命令查看这个工具的子命令列表:
gentoo myblog # python manage.py help
在 help 后面加上子命令,则可以查看各个子命令的帮助,如:
gentoo myblog # python manage.py help runserver
usage: manage.py runserver [options] [optional port number, or ipaddr:port]Starts a lightweight Web server for development.
options:
--settings=SETTINGS The Python path to a settings module, e.g.
"myproject.settings.main". If this isn't provided, the
DJANGO_SETTINGS_MODULE environment variable will be
used.
--pythonpath=PYTHONPATH
A directory to add to the Python path, e.g.
"/home/djangoprojects/myproject".
--traceback Print traceback on exception
--noreload Tells Django to NOT use the auto-reloader.
--adminmedia=ADMIN_MEDIA_PATH
Specifies the directory from which to serve admin
media.
--version show program's version number and exit
-h, --help show this help message and exit - settings.py
保存项目级别的 Django 配置信息,如数据库配置、时区设置等等。
- urls.py
定义 Django 的 URL 映射规则,实现 URL Mapper( 或者叫 URL dispatching)。
启动开发服务器
Django 自带了一个轻量级的 Web 服务器,适合于在开发过程中快速测试 Django 代码,而不需要频繁地启动 HTTP 服务器或 FastCGI 服务器。
使用以下命令来启动:
gentoo myblog # python manage.py runserver
Validating models...
0 errors foundDjango version 1.0.2 final, using settings 'myblog.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
runserver 默认在 127.0.0.1:8000 上监听,如果要使用不同的 ip:port,只需要在 runserver 后加上 ip:port 参数,如:
gentoo myblog # python manage.py runserver 192.168.1.6:8080
关于该命令的具体帮助,可参考上一节中所述,输入以下命令查看:
gentoo myblog # python manage.py help runserver
启动成功后,用浏览器打开对应的 http://ip:port/,如 http://192.168.1.6:8080/。您应该可以看到以下界面:
这就表明我们的开发服务器已经启动,并且正常运行。
从下一节起,我们从一个简单的例子开始,逐步引入 Django 框架的各个组成部分,来帮助大家理解 Django 的 MTV 模型的工作机制。
主要包括:
- HTTP 请求/响应
- URL 映射
- 视图控制
- 模板系统
- 数据库模型
下一节 >>>
通过一个简单的示例,讲解“HTTP 请求/响应”、“URL 映射”和“视图控制”的工作原理。
-- EOF --


藏宝图» Blog Archive » Django 快速实战入门(一):概述 说道:
2009年03月19日 22:10
[...] Django 快速实战入门(二):组建开发环境 [...]
藏宝图» Blog Archive » Django 快速实战入门(二):组建开发环境 说道:
2009年03月19日 22:13
[...] 原始链接:http://hily.me/blog/2008/11/learning-django-ch2/ [...]
s@136.com 说道:
2009年06月17日 17:24
ss