Pyhton_Django学习笔记(三) 视图和URL配置
其实本章应该是在第二章之前,第一章之后的记录。
第一个用DJANGO运行的例子。
为了更好说明路径问题,在项目目录下,创建文件 view.py
2
3 def hello(request):
4 return HttpResponse('Hello World')
虽然这段函数很简单,也大概说一下。
在view.py文件中,我们定义了一个视图函数 hello. 每个视图函数至少要有一个参数,一般是request.
这是一个触发该视图、包含当前Web请求信息的对象,是类 django.Http.HttpRequest的一个实例。
这个函数返回一个HttpResonse对象,包含文本 Hello World.
现在运行这个服务,打开浏览器还看不到这个页面,因为我们需要在urls.py中配置,来激活这个视图。
URL调用这段代码。例如: 当用户访问这个路径/Hello/时,调用视图函数hello(),这个函数存在于view.py中。
打开urls.py,在其中urlpatterns中加入 URL和VIEW。
urls.py文件中加入代码
首先导入视图 from HelloWorld.view import hello
先解释这段代码: HelloWorld是项目名称,就是在你导入Django文件时候 startproject 后面的那个名字。
view就是上面创建的文件view.py。在这里解释成view。import view.py文件中的视图函数 hello.
第二步,在 urlpatterns = patterns('',)中 加入代码 ('^hello/$',hello)
变成
注意:在每个参数后面加个逗号 在PYTHON中是个好习惯。
第一个参数'^hello/$'是个正则表达式字符串,暂且先理解成 访问网站的/hello/这个路径的意思就好。
第二个参数 hello 表示调用的函数名称。
结合起来就是 访问网站/hello/这个路径的时候,调用hello这个视图函数处理。
到这,你就可以运行SERVER 打如路径,查看效果了。
到这里我们还需要注意个特性,在Django中,我们是把hello这个视图函数做为一个对象传递,而不是调用它。
这是python的一个特性,你可以像传递其他一些变量一样传递它。
下面记录下,Django是怎么处理请求的。
在浏览器中输入 http://localhost/hello/时候,后台如何处理。
首先一切开始于 setting 文件。当运行 python manage.py runserver时,脚本在manage.py同一个
目录下查找 settings.py文件。这个文件中包含了了所有关于这个Django项目的配置信息。
settings.py中包含一个ROOT_URLCONF配置指向自动生成的urls.py.
ROOT_URLCONF = 'helloworld.urls'
访问URL /hello/时,Django根据ROOT_URLCONF的设置装载URLConf。
然后按顺序逐个匹配URLConf里URLpatterns,直到找到匹配项。找到后,调用对应视图函数。并把HttpRequest对象
做为第一个参数传入。