Contents
作为一个Ubuntu和Python的爱好者,我希望这个描述如何在Ubuntu上搭建Django开发环境的页面能够帮助那些和我有相同需求的朋友们。
软件清单
- Ubuntu 6.06 LTS
- Python 2.4.3
- Apache 2.0.55
- mod_python 3.1.4
- SQLite 3.2.8
- pysqlite 2
- Django 0.95
软件安装
Ubuntu
Ubuntu 6.06 LTS Alternate CD
Python
Ubuntu 6.06 LTS默认安装Python 2.4.3
Apache
apt-get install apache2
mod_python
apt-get install libapache2-mod-python2.4
SQLite
apt-get install sqlite3
pysqlite
apt-get install python2.4-pysqlite2
Django
软件配置与测试
Apache配置
apache2的配置文件位于目录/etc/apache2/下,apache2默认的站点根目录为/var/www/。一般我们习惯在/var/www/下新建一个mysite目录来作为默认站点的目录,但是我们此时暂不建立此目录,而是留待建立Django的项目时再建立该目录。修改apache2的默认站点配置文件/etc/apache2/sites-available/default,修改其中的DocumentRoot和第二个Directory指示符由默认值/var/www/改为/var/www/mysite/:
NameVirtualHost * <VirtualHost *> ServerAdmin webmaster@localhost #DocumentRoot /var/www DocumentRoot /var/www/mysite <Directory /> Options FollowSymLinks AllowOverride None </Directory> #<Directory /var/www/> <Directory /var/www/mysite/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog /var/log/apache2/mysite_error.log LogLevel warn CustomLog /var/log/apache2/mysite_access.log combined ServerSignature On </VirtualHost>
配置完毕之后记得重新启动apache2:
apache2ctl -k restart
mod_python配置
对mod_python的配置需要修改的配置文件是/etc/apache2/httpd.conf,只需在文件中加入一个Location指示符即可,其内容如下:
<Location "/"> SetHandler python-program PythonHandler django.core.handlers.modpython SetEnv DJANGO_SETTINGS_MODULE mysite.settings PythonPath "['/var/www'] + sys.path" PythonDebug On </Location>
需要注意的是PythonPath的设置,其中的/var/www是mysite目录的上一级目录。
Django配置
在/var/www/目录下使用django-admin.py工具建立一个名称为mysite的Django项目:
django-admin.py startproject mysite
该工具将建立一个名为mysite的目录,同时在该目录下将生成一系列的项目初始文件:
__init__.py 表示这是一个 Python 的包 manage.py 提供简单化的 django-admin.py 命令,特别是可以自动进行 DJANGO_SETTINGS_MODULES 和 PYTHONPATH 的处理,而没有这个命令,处理上面环境变量是件麻烦的事情 settings.py 它是django的配置文件 uls.py url映射处理文件, Karrigell 没有这种机制,它通过目录/文件/方法来自动对应,而 Django 的url映射是url对于某个模块方法的映射,目前不能自动完成
不使用数据库的Django测试
打开浏览器在地址栏中输入:
http://localhost/
并回车,一切正常的话将会看到Django的一个祝贺页面,大功告成。
使用SQLite数据库的Django配置与测试
待续
使用MySQL数据库的Django配置与测试
待续