我这也是边学边写,大家一起吧。参考的资料有点多,但都不太完全,只能依据理解自己把它集合在一起。
首先,安装python就不说了,我用的是anaconda,我在找了很久走了很多弯路之后才找到,这是一个python的科学环境,它很强大,集成了各种python所需要的库,使用的版本为anaconda2,对应的python是python2.7。(它在安装的时候环境变量会自己装好)
另外,它是同时支持2.x和3.x的,想要再继续装python3.x和了解anaconda用法的,可以参考:http://python.jobbole.com/86236/。
我用的是Win7,如果用Linux/Unix的话,就参考这个视频:
http://www.imooc.com/video/8914,不会有我的问题那么多
接下来就是Django的环境的搭建:
一、安装Django
1、首先,anaconda里面没有带Django,我们打开这个:

2、然后,打开是这样的,长得和cmd差不多,我是把anaconda安装在了D盘,然后第二个是你接下来的操作都在这个文件夹下。
3、那我现在要安装包的话,先不用管它,直接安装,用命令:conda+操作+安装包名。conda命令很强大,它可以实现在cmd里实现的任何命令,当然也可以当pip使用。这个conda和pip差不多,命令也类似,只不过将pip改成了conda而已,操作指的是install/uninstall/update这类。
4、我们安装Django,在后面直接输入:conda install Django,然后等待即可。因为我已经安装过了,这里就不放图了。
5、安装完,你打开python/ipython,anaconda里面有,然后输入import Django,运行,如果没出错就是成功了。
6、有些人可能用的不是这个,直接用的python,如果需要,请在path里加上 “;D:/Python/Lib/site-packages/django/bin”,D盘是我安装的路径,配置它可以在需要管理Django项目的时候不用输入很长很长的文件名。

三、创建视图文件
我看了一下网上的教程,有些是在建完项目直接就建APP,而有的教程里并没有,我在某个网上看到:项目是针对一个特定的 Web 网站相关的配置和其应用的组合。一个项目可以包含多个应用。一个应用可以在多个项目中使用。链接忘了。
后来发现,不管有没有建APP,都可以在网站上显示内容。
而创建APP的作用主要是,这个应用可能是一个博客,一个网站,建立了它在运行的时候就不单单只是显示It worked!了,而是一个完整的网站的内容。
我买了一本《python高效开发实战》,里面有python的四大主流框架,包括Django,然后参考了一下http://jingyan.baidu.com/article/84b4f565d09bf360f6da32b3.html。

这个是未创建工程前的:
1、1、打开web/web目录,创建一个view.py文件(对,自己创建,它本来下面只有四个文件,没有它,它和web/blog/views.py有区别)然后输入:

#coding:utf8
from django.http import HttpResponse

def hello(req):
    return HttpResponse('hello world!')

2、然后打开web/web/urls.py,修改:
先增加一行:
from web.view import hello #从web/view.py导入hello函数
然后在urlpatterns中加入一行url(r’^hello/’,hello),这样就可以了。

#那个include函数可以导入也可以不用

cd webpython manage.py startapp blog

四、创建APP后view视图的实现
1、打开web/blog/views.py,它打开来是这样的:

2、然后建立一个路由响应函数,在web/blog下创建一个views.py文件,管理应用APP中的所有url映射,加入以下内容:

from django.http import HttpResponse
def hello(req):
    return HttpResponse('hello world!')

另外,这里要注意,别搞错,因为这个我出了问题怎么都解决不了。我是因为之前资料不完整,然后将本该是web/blog/views.py和urls.py的内容分别写在了web/views.py和urls.py里。而这几个是有区别的,web/urls.py是自带的,后面会用到这个文件。生成web的同时自动产生的,而web/blog/urls.py是要我们自己创建的。

3、然后我们打开web/blog下的urls.py 文件,绑定 URL 与视图函数。
因为我用的书使用的是2.7版本的,但是我在网上看到的似乎都是3.x版本的,两个都写吧。

python2.7:
#coding:utf8      #python2.x中这个不能少,另一种方式是-*-coding:utf8-*-
#Django中的所有路由映射都由这个url()生成
from django.conf.urls import url
#导入web/blog/view.py模块
from . import views

#该关键变量是一个列表,保存所有由url()函数生成的路由映射。
urlpatterns = [
    #将所有路由映射到views.py中的hello函数
    url(r'',views.hello),
]

------------------------------------------------------------
python3.4:
#这里其实需要导入django.conf.urls下的三个模块,patterns,urls,include,所以也可以写from django.conf.urls import patterns,urls,include,导入*是为了麻烦
from django.conf.urls import *
#web.view就是导入web文件夹下的view.py,hello即里面使用的函数名
#从这里开始跟python2.7有些不同
from web.view import hello
#3.4好像是用的patterns这个函数,而2.7是列表,不用它,所以比2.7多了一个要导入的模块
urlpatterns = patterns("",
    ('^hello/$', hello),
)

4、这个时候就切换到web/urls.py了,就是我刚刚说的容易错的地方,千万别搞错
里面默认是这样的:

然后我们往里面加,声明对应用APP中urls.py文件的引用:

from django.conf.urls import include

然后在urlpatterns中增加一项:

#url()的第一个参数用正则表达式来表达url路由,^blog/表示以blog开通的路由
url(r'^blog/',include('blog.urls')),
#书上的解释是:在urlpatterns增加这个blog/路径,将其转接到app.urls包,即web/blog/urls.py文件。这样通过include()函数就将两个urlpatterns连接了起来。
#这里的include函数可以省略,现在已经输出的是hello函数的内容了,但是若是有其他函数导入则不能省略,会找不到的。但是如果没有其他函数,只有hello函数,就可以。

不懂正则的去看看python的正则,推荐几个:
1、http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html(这个是我当时看的,里面的图显得很清楚)
2、http://www.cnblogs.com/chuxiuhong/p/5885073.html
3、http://www.jb51.net/article/15707.htm
4、http://www.runoob.com/python/python-reg-expressions.html

完整代码如下:

5、先启动内置服务器,在anaconda的命令行里输入命令(在web工程下,因为manage.py 在web目录下),总共有三种方法:

python manage.py runserver
python manage.py runserver 8080 #修改端口号,默认的是8000
(0.0.0.0表示绑定本机的所有IP)
python manage.py runserver 0.0.0.0:8000 #服务器监听任意IP的8000端口

这个时候如果出现这个图,其实差不多已经成功了,

6、然后这个时候你打开浏览器输入127.0.0.1:8080/blog(8080是我设置的端口号,blog是我的APP名,你对应修改成自己的就行了)就成功了,或者localhost:8080。如图:

如果你输入的是127.0.0.1:8080,没有APP名的话,打开来是page not found ,如下图:

原因我们看命令行,你没有指定跳转的目录就会打开它的根目录,它的根目录就是上面那个页面。

当然,出现这个页面已经成功了。虽然我的不知道为什么相比其他人的多了you have 13 unapplied migration…什么的。

看http://www.cnblogs.com/zrl66/p/Django.html的解决办法:
我们在命令行输入这么一句命令:python manage.py migrate,如图,每条都OK了就可以了。

然后你再输入python manage.py runserver的时候就不会有了。


后来我又看到出现page not found的解决方法有两个:
一是在端口号后加上\blog,另外还有一种方法,参照:http://jingyan.baidu.com/article/84b4f565d09bf360f6da32b3.html
仍旧在web/web/view.py文件增加创建另一个函数:
def homepage(req):
return HttpResponse(‘homepage!’)

然后修改web/web/urls.py,做一些修改:

1、先导入homepage函数,在第三行后面加上就行了。
2、加上上面两个函数

现在输入127.0.0.1:8080就可以打开了,不用在后面加\blog了。
这里blog和hello他们输出的内容是一样的,因为目前blog/urls.py里只有一个hello函数,他们输出的内容是一样的,只是前面以示区别。
但是如果注释掉,输入127.0.0.1:8080\blog就打不开了。

如果端口被占,用第二种,你只要更改端口号即可。

至此,花了两个晚上终于成功了。
以上均为亲测,除了创建工程之后显示的页面之后都成功了,但是因为之前出错了,所以没显示。后来直接进行的下一步。


但是我的不是这个原因,因为加了也没用,后来发现就是出了我前头出现的问题,我把web/blog和web/web下的urls.py文件搞混了,重新弄好之后就搞定了。