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/