千与千寻django(二)---永远的helloword

来源:互联网 发布:php curl设置超时时间 编辑:程序博客网 时间:2024/05/21 06:46

动态的内容

    面已经介绍了如何安装django的集成环境了并已经运行起它自带的一个页面,但毕竟不是我们自己的东西,人家生成的终究是人家 的,所以呢,自己动手丰衣足食,下面我们就自己动手做一个自己的djangoweb程序吧,当然还是helloword为例,helloword包含了太多的往忆呀!

原理

我们写个view视图的方法,接受web请求并返回web的应答,当然这个应答可以是HTML内容、重定向、404错误、XML文档、图像等等 ,但是为了简单,我们就直接返回字符串,
那么我们应该将其写在哪呢?当然是随便了但是要保证在python path下以至于python能够找到它,所以我们将其放在views.py并保存到我们上次生成的那个目录下

from django.http import HttpResponse'''Created on 2013-3-21@author: Senssic'''def helloword(request):    str="hello word"    return HttpResponse(str)

URL配置

配置URL的目的是URL模式和对应的view函数的映射,当符合某个特定的逻辑就会被调用
所以在我们生成的urls.py做如下配置

from django.conf.urls.defaults import patterns, include, urlfrom mysite.views import hellowordurlpatterns = patterns('',   (r'^helloword/$',helloword),                    )
注:
此处(r'^helloword/$',helloword)为python的元组,是url的映射配置关系,不是调用helloword函数,而是作为一个对象传递的,'^'和'$'符号很重要,前者表示“匹配string的开始的模式”,后者表示“匹配string结束的模式”,还有就是不必在'^now/$'前面增加斜线来匹配/now/,Django自动在每个表达式前面添加斜线 .
好了那我们运行看看结果吧
http://127.0.0.1:8000/helloword/

至此第一个自己的web就弄好了,亲简单吧。

处理原理

命令python manage.py runserver找到settings.py,这个文件包含了这个Django实例的所有配置选项
最重要的设置是ROOT_URLCONF(ROOT_URLCONF = 'mysite.urls'),它告诉Django使用哪个Python模块作为当前站点的URL配置-->>当一个请求进来如/helloword/,Django载入URL配置,然后按顺序检查每个URL模式直到找到一个匹配的URL请求模式,然后Django调用那个模式匹配的方法,并传递一个HttpRequest对象作为第一个
参数 -->视图方法负责返回一个HttpResponse对象

关于URL匹配

常用的正则
  1. Symbol    Matches   
  2. .(dot)    任意字符   
  3. \d        任意数字   
  4. [A-Z]     从A到Z的任意字符(大写)   
  5. [a-z]     从a到z的任意字符(小写)   
  6. [A-Za-z]  从a到z的任意字符(大小写不敏感)   
  7. [^/]+     任意字符直到一个前斜线(不包含斜线本身)   
  8. +         一个或多个前面的字符   
  9. ?         零个或多个前面的字符   
  10. {1,3}     1个到3个之间前面的字符(包括13)
所以我们可以构建动态的url
像这样:
(r'^helloword/plus(\d{1,2})hours/$', plutsnum), 
http://127.0.0.1:8000/helloword/plus3hours/----正常访问
http://127.0.0.1:8000/helloword/plus300hours/---Django显示“Page not found”错误
http://127.0.0.1:8000/helloword/plushours/也会显示404错误,因为我们只接受1个或2个数字的参数





原创粉丝点击