作为一个Ubuntu和Python的爱好者,我希望这个描述如何在Ubuntu上搭建Django开发环境的页面能够帮助那些和我有相同需求的朋友们。

软件清单

软件安装

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

参考How to get 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配置与测试

待续

参考链接

zhwang/UbuntuDjango (last edited 2009-12-25 07:09:03 by localhost)