http://www.admin10000.com/document/94.html
一. 下载并安装Python
Python 官方下载地址: http://www.python.org/ftp/python/
1.1. Next, Next
我们这里选择的是 Python 2.7.3 。(最新版是Python 3.3.0, 因为Python2.X与Python3.X变化比较大, Python2.X的文档和文章比较多, 所以这里使用Python2.7.3版.)
一路Next就可以了, 选择全部安装就可以了.
我这里安装在C:\Python27目录
1.2. 添加环境变量
图1
1.3 验证是否安装和配置正确
设置完成之后,我们打开CMD命令提示符窗口, 输入 "python --version", 显示版本号
图2
再输入"python" 进入Python, 再输入"print "Hello Python", 显示如下:
图3
OK, Python安装配置成功.
二. 下载并安装Django
Django官网: https://www.djangoproject.com/
这里使用版本Django-1.4.5.tar.gz。 最新的Django-1.5.0.tar.gz支持Python3.3.0.
2.1 安装Django
下载完后, 解压, 我这里解压到C:\Django-1.4.5目录
我们打开cmd命令提示窗口,cd入C:\Django-1.4.5目录, 输入命令"python setup.py install"来进行Django的安装.
图4
2.2 添加环境变量
安装完成之后,我们发现 Django 被安装到了 C:\Python27\Lib\site-packages\django 这个目录。我们需要将这个C:\Python27\Lib\site-packages\django\bin路径添加到操作系统环境变量Path,
图5
目前为止我们已经完成 Django 安装的操作.
2.3 验证安装和配置的正确性
首先我们打开一个CMD命令窗口,看看Django的常规指令是否能用,然后我们再看看Django是否已经和python语言环境集成到了一起。
图6
从图中看到,我们首先在操作系统提示符下执行"django-admin.py --version", 系统打印出Django的版本号"1.4.5"。
接着我们输入“Python”进入到python运行环境,在“>>>”提示符下,我们输入一个python的模块导入语句 “import django”,这个语句表示我们在目前 python 运行环境中引入"django"这个功能模块;然后我们使用这个功能模块的“VERSION”方法来查看这个模块的版本号,同样我们也看到了相同的版本号。如果你的电脑上也完整的看到这些信息的话,那么OK,这证明你的电脑已经可以开始执行基于Django系统的python程序了。
三. 创建一个Django项目
学习Django,我们的目的当然是为了用来开发基于Web的应用系统,我们来看看Django如何显示一个Web页面。
3.1 创建一个网站并启动和浏览它
打开一个CMD命令窗口,依次输入指令.
图7
3.1.1 创建网站项目
首先进入D盘,输入命令django-admin.py startproject mysite 用来创建一个网站项目,网站目录名字为mysite,路径为D:\mysite。
执行该命令后, 在将创建D:\mysite目录, 在D:\mysite下有(mysite目录和manage.py文件).
图8
3.1.2 运行网站服务器
使用用命令行cmd, Cd进入D:\mysite目录, 输入manage.py runserver 开启网站。可以指定端口,默认为8000,如果想使用90端口,就写成 manage.py runserver 90。
3.1.3 浏览网站
最后我们打开浏览器在地址栏里输入地址 http://localhost:8000 ,看到 “It worked”了吗?
图9
神奇.
四. 修改一下网站
4.1 修改步骤
接下来我们建一个Hello world页面:
使用Django,页面的内容是靠视图函数来产生,我们在D:\mysite目录下创建一个视图文件views.py 输入如下内容:
from django.http import HttpResponse
import datetime
def hello(request):
now = datetime.datetime.now()
html = "<html><body><h3>Hello World!</h3>It is now %s </body></html>" % now
return HttpResponse(html)
并且,接着修改D:\mysite\mysite目录下的urls.py 文件,内容如下:
from django.conf.urls.defaults import patterns, include, url
urlpatterns = patterns('',
('^hello/$','views.hello'),
)
最后我们打开浏览器在地址栏里输入地址 http://localhost:8000/hello/,结果显示.
图10
4.2 分析说明
A. 比较一下D:\mysite\views.py, D:\mysite\mysite\urls.py以及D:\mysite\manage.py的路径关系,
B. 再比较一下D:\mysite\mysite\urls.py中的添加的那一句"('^hello/$','views.hello'),"和URL地址"http://localhost:8000/hello/",
C. 可以看到这里存在映射关系, ^hello/$'的映射到"http://localhost:8000/hello/"中的hello/, 'views.hello'是代表要导入views模块的hello函数.
D. D:\mysite\views.py和D:\mysite\manage.py在同一目录下.
E. 所以可以了解到Django在接收到"http://localhost:8000/hello/"的请求后是如何工作的.
E.1 先找到/hello/所映射到的模块或者函数, 这里是'views.hello'的,
E.2 在知道是'views.hello'后, Python在manage.py的同一目录开始查找views.py文件, 再就是views.py模块中hello函数.
E.3 找到后, 就是生成html数据返回给浏览器.
根据以上的分析, 现在试一下:
1. 在D:\mysite\目录下新建Test目录, 拷贝一份views.py到Test目录(D:\mysite\Test\views.py).
2. 在D:\mysite\mysite\urls.py添加"('^hello2/$','Test.views.hello'),", (参考上面的说明)
3. 测试一下, 不行.
4. 在Test目录下添加一个__init__.py空文件, 再试一下, 可以了.
四. 建立一个Mysql数据库应用
4.1 首先安装MySQL数据库.
4.2 安装python-mysql驱动。
官方下载地址:http://sourceforge.net/projects/mysql-python/files/
windows版本下载地址:http://www.codegood.com/downloads
我们这里使用windows版本 MMySQL-python-1.2.4b4.win32-py2.7.exe
4.3 使用MySQL创建一个数据库.
先创建一个数据库: create database TestDB;
图11
相关命令:
登陆mysql: mysql -u root -p
创建数据库: create database TestDB;
使用数据库: use TestDB;
显示表:show tables;
4.4. 修改settings.py配置文件的数据库项
在D:\mysite\mysite\setttings.py文件,打开它,找到DATABASES这一项,更改数据库连接参数。结果如下:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': '你的数据库名称',
'USER': '你的MYSQL账号',
'PASSWORD': '你的MYSQL密码',
'HOST': '127.0.0.1',
'PORT': '3306',
}
}
我这里是:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'TestDB',
'USER': 'root',
'PASSWORD': '123456',
'HOST': '127.0.0.1',
'PORT': '3306',
}
}
打开CMD窗口,在D:\mysite目录下输入下面指令,测试数据连接是否成功。
manage.py shell
from django.db import connection
cursor = connection.cursor()
图12
如果没有任何提示信息,代表数据库连接成功。
要注意的是应该先数据库已被创建
修改settings.py后, 应该重新运行manage.py shell
4.5 新建一个App应用 books
打开CMD窗口,在D:\mysite目录下输入指令:
manage.py startapp books
图13
则创建D:\mysite\books目录, 目录下有如下文件:
图14
4.6 自定义model文件
在D:\mysite\books目录下,修改models.py 文件内容如下。
from django.db import models
class Book(models.Model):
title = models.CharField(max_length=100)
authors = models.CharField(max_length=100)
publisher = models.CharField(max_length=100)
publication_date = models.DateField()
def __unicode__(self):# 这个是类函数
return u'%s %s' % (self.title,self.authors)
这里就是创建一个书籍的数据表的模型
4.7. 修改D:\mysite\mysite\setttings.py文件,激活books应用
再到settings.py文件,修改INSTALLED_APPS这一项。
INSTALLED_APPS = (
'books',
)
INSTALLED_APPS上默认的那些数据删除丢, 只保留'books'
这个"books"相当于一个路径或者说是一个包, 它与以manage.py所在路径为参考路径, 假设books在abc目录下, 那么就要写成:
INSTALLED_APPS = (
'abc.books',
)
4.8 建表
打开CMD窗口,在d:\mysite目录下输入下面命令,同步你的模型到数据库:
manage.py syncdb
图15
4.9 向数据表插入一些记录
打开CMD窗口,在d:\mysite目录下,输入一些指令
manage.py shell
from books.models import Book
p1 = Book(title = "HTML", authors = "zhm", publisher = "zhm1000", publication_date = "2013-03-07")
p1.save()
p2 = Book(title = "CSS", authors = "zhm", publisher = "zhm1000", publication_date = "2013-03-07")
p2.save()
p3 = Book(title = "JS", authors = "zhm", publisher = "zhm1000", publication_date = "2013-03-07")
p3.save()
p3.save()
list = Book.objects.all()
list
图16
如果你到Mysql上查询一下, 发现已经有这些数据在数据库上了.
4.10 修改D:\mysite\books\views.py文件的内容
from django.shortcuts import render_to_response
from books.models import Book
def booklist(request):
list = Book.objects.all()
return render_to_response('booklist.html',{'books':list})
4.11 修改d:\mysite\url.py的内容
路径映射
urlpatterns = patterns('',
('^books/$','books.views.booklist'),
)
增加('^books/$','books.views.booklist'),
注意目录关系.
4.12 在D:\mysite目录下新建目录templates 作为存放模板的目录
新建一个模板文件booklist.html 内容以下
<ul>
{% for book in books %}
<li> {{book.title}} </li>
{% endfor %}
</ul>
4.13 修改d:\mysite\settings.py 文件
找到 TEMPLATE_DIRS项,修改内容如下:
TEMPLATE_DIRS = (
'd:/mysite/templates'
)
4.14 看看结果
最后进入mysite 这个目录,输入manage.py runserver 开启网站。
打开浏览器访问地址http://localhost:8000/books
图17
我觉得这个Web环境的配置十分简单, 但唯一要注意的就是: 一定要注意各个目录之间的那些路径关系. 因为Python中的包, 模块, 类, 函数的导入都依赖这些路径关系的.