django request 路由
进来的请求转入/hello/.
Django通过在ROOT_URLCONF配置来决定根URLconf.
Django在URLconf中的所有URL模式中,查找第一个匹配/hello/的条目。
如果找到匹配,将调用相应的视图函数
视图函数返回一个HttpResponse
Django转换HttpResponse为一个适合的HTTP response,以Web 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”)