00) 測試系統:vmware7虛擬機下安裝的Windows Server 2003 R2 32位系統 01) 環境搭建: 按如下順序分別安裝1> mysql-5.5.20-win32.msi 2> httpd-2.2.21-win32-x86-openssl-0.9.8r.msi 3> python-2.7.2.msi 4> MySQL-python-1.2.3.win32-py2.7.exe 5> mod_python-3.3.1.win32-py2.7.exe 6> django-1.3.1.tar.gz 安裝mysql-5.5.20-win32.msi,安裝路徑按默認,配置參數時選擇字符集爲UTF8; 安裝httpd-2.2.21-win32-x86-openssl-0.9.8r.msi,安裝路徑按默認; 安裝python-2.7.2.msi,安裝路徑按默認; 安裝MySQL-python-1.2.3.win32-py2.7.exe,安裝路徑按默認; 安裝mod_python-3.3.1.win32-py2.7.exe ,安裝路徑按默認; 將程序安裝目錄添加到windows系統環境變量PATH中,在CMD終端下查看path變量(echo %path%)應包含如下路徑:C:\Program Files\Apache Software Foundation\Apache2.2\bin;C:\Python27;C:\Program Files\MySQL\MySQL Server 5.5\bin; 解壓Django-1.3.1.tar.gz到d:\目錄下 d: & cd d:\django-1.3.1 python setup.py install 安裝完django後,在系統環境變量path中添加如下路徑C:\Python27\Lib\site-packages\django\bin; 02) 建立項目: 在CMD命令行模式下, d: & django-admin.py startproject mysite 03) 配置數據庫: mysql -uroot -p create database django; grant all privileges on django.* to 'django'@'localhost' identified by 'django' with grant option; 修改django的配置文件d:\mysite\setting.py以下: DATABASES = { 'default': { 'ENGINE':'django.db.backends.mysql', 'NAME':'django', 'USER':'django', 'PASSWORD':'django', 'HOST':'', 'PORT':'', } } INSTALLED_APPS = ( 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.admin', 'polls', ) 04) 測試django與MySQLdb:在CMD命令模式下: python import MySQLdb import django 05) 建立應用: 在CMD命令模式下: d: & cd mysite python manage.py startapp polls 在數據模型文件D:\mysite\polls\models.py添加數據模型: from django.db import models class Poll(models.Model): question = models.CharField(max_length=200) pub_date = models.DateTimeField('date published') class Choice(models.Model): poll = models.ForeignKey(Poll) choice = models.CharField(max_length=200) votes = models.IntegerField() 測試數據模型並同步到數據庫: python manage.py validate python manage.py sql polls python manage.py syncdb 在URL映射文件D:\mysite\urls.py添加映射以下: from django.contrib import admin admin.autodiscover() url(r'^$', 'polls.views.index'), url(r'^admin/', include(admin.site.urls)), 在視圖函數文件D:\mysite\polls\views.py中添加簡單測試函數index: from django.http import HttpResponse def index(request): return HttpResponse("Hello, world. You're at the poll index.") 在mysite/polls/下新建admin.py文件以下: from polls.models import Poll from django.contrib import admin admin.site.register(Poll) 06) 測試應用: 在CMD命令模式下: d: & cd mysite python manage.py runserver 在瀏覽器中打開 http://127.0.0.1:8000/ 返回Hello, world. You're at the poll index. 在瀏覽器中打開 http://127.0.0.1:8000/admin/ 返回django的登陸界面。 07) 配置apache: 修改C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf增長以下: Include conf/extra/httpd-django.conf 在C:\Program Files\Apache Software Foundation\Apache2.2\conf\extra下新建httpd-django.conf以下: LoadModule python_module modules/mod_python.so Listen 8008 NameVirtualHost *:8008 <VirtualHost *:8008> ServerName vm129.134.com <Location "/"> SetHandler python-program PythonHandler django.core.handlers.modpython SetEnv DJANGO_SETTINGS_MODULE settings SetEnv PYTHON_EGG_CACHE D:/Temp PythonPath "['D:/mysite','D:/'] + sys.path" PythonInterpreter mysite PythonDebug On </Location> <LocationMatch "\.(css|js|jpeg|jpg|gif|png|ico)$"> SetHandler None </LocationMatch> AliasMatch ^/static/admin/(.*) "C:/Python27/Lib/site-packages/django/contrib/admin/media/$1" <Directory "C:/Python27/Lib/site-packages/django/contrib/admin/media/"> Options FollowSymLinks AllowOverride None Order deny,allow Allow from all </Directory> </VirtualHost> 啓動apache服務:net start apache2.2 在瀏覽器中測試:http://127.0.0.1:8008/admin/