Pyhton_Django学习笔记(三) 视图和URL配置

  其实本章应该是在第二章之前,第一章之后的记录。

  第一个用DJANGO运行的例子。

   为了更好说明路径问题,在项目目录下,创建文件 view.py

   

1 from django.http import HttpResponse
2 
3 def hello(request):
4        return HttpResponse('Hello World')  

    虽然这段函数很简单,也大概说一下。

    在view.py文件中,我们定义了一个视图函数 hello. 每个视图函数至少要有一个参数,一般是request.

    这是一个触发该视图、包含当前Web请求信息的对象,是类 django.Http.HttpRequest的一个实例。

    这个函数返回一个HttpResonse对象,包含文本 Hello World.

 

    现在运行这个服务,打开浏览器还看不到这个页面,因为我们需要在urls.py中配置,来激活这个视图。

    urls.py就像是Django网站的视图列表,是URL跟视图之间的映射表。用这种方式告诉Django,用这个

 

    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)

               变成

        urlpatterns = patterns('',
                    ('^hello/$',hello),
        )

    注意:在每个参数后面加个逗号 在PYTHON中是个好习惯。

    第一个参数'^hello/$'是个正则表达式字符串,暂且先理解成 访问网站的/hello/这个路径的意思就好。

    第二个参数 hello 表示调用的函数名称。

    结合起来就是    访问网站/hello/这个路径的时候,调用hello这个视图函数处理。

     用正则表达式规范第一个参数的原因,不在这里详解,想了解更多请自行参考 URLpattern 语法。

 

     到这,你就可以运行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对象

       做为第一个参数传入。

     

     

    

    

posted on 2011-07-04 16:05  超级管理员  阅读(1464)  评论(0编辑  收藏  举报