django request 路由

  1.     进来的请求转入/hello/.

  2.     Django通过在ROOT_URLCONF配置来决定根URLconf.

  3.     DjangoURLconf中的所有URL模式中,查找第一个匹配/hello/的条目。

  4.     如果找到匹配,将调用相应的视图函数

  5.     视图函数返回一个HttpResponse

  6.     Django转换HttpResponse为一个适合的HTTP responseWeb page显示出来

 

 关于setting

 django 所有的默认配置均在对应的project的名字目录下的settings.py

也就是说,建立了一个mysite  对应的

配置文件就在:$dir/mysite/mysite/setting.py

manage.py    $dir/mysite/manage.py

 

关于urls

urls配置比较灵活,多集目录的配置可以联动配置

比如:二级目录有books address

mysite/urls.py  配置目录指向对应模块下的urls.py文件

    url(r'^books/',include('books.urls')),

    url(r'^address/',include('address.urls')),

对应在二级模块下的urls.py 再来配置转向,两种方式实现:

 urlpatterns = patterns('address.views',  

    url(r'^hello/$', 'hello'),   

)

 

----

fromaddress import view  # or  from address.view import *

 urlpatterns = patterns('',  

    url(r'^hello/$',view.hello),   

)

 

关于request传参

urls#   url(r'^time/plus/(\d{1,2})/user/(\w+)$', hours_ahead),

访问#http://127.0.0.1:8000/books/time/plus/1/user/laurent #这里需传入参数plus=1

views#defhours_ahead(request,offset,user):

    try:

        offset=int(offset) #转为int类型

 

request 是一个HttpRequest 对象, 就像在 current_datetime 中一样. 再说一次好了: 每一个视图 总是 以一个 HttpRequest 对象作为 它的第一个参数。 (见上)

offset是从匹配的URL里提取出来的。例如:如果请求URL是/time/plus/3/,那么offset将会是3;如果请求URL是/time/plus/21/,那么offset将会是21。请注意:捕获值永远都是字符串(string)类型,而不会是整数(integer)类型,即使这个字符串全由数字构成(如:“21”)