您的位置:首页 > 编程语言 > Go语言

Django入门2:路由系统

2017-09-29 14:06 357 查看
1、单一路由对应

  url(r'^index/', views.index), # FBV
  url(r'^home/', views.Home.as_view()), # CBV

2、基于正则的路由

1 url(r'^detail-(\d+).html', views.detail),
2
3 url(^'^detail-(\d+)-(\d+).html',views.detail),
4 '''
5 严格按照位置参数的顺序传入参数,如果在实际环境中,def detail(request,nid,uid)在定义时,参数的指定出现差错,则会导致下面的对参数的引用出现错误。
6 '''
7
8 url(r'^detail-(?P<nid>\d+)-(?P<uid>\d+).html', views.detail),
9 '''
10 传参时确保了nid=第一个传入的位置参数,uid=第二个传入的位置参数。
11 '''


  实例1:实现 ?nid={{ id }}的url:

1 def index(request,name):
2     print(name)
3     return HttpResponse('OK')


views.py
在url中添加额外的参数后,在对应的视图函数中必须设置相应的形式参数name。在执行该方法时会自动传入默认值‘root'作为实参。

6、命名空间

a. project.urls.py

b. app01.urls.py

c. app01.views.py

以上定义带命名空间的url之后,使用name生成URL时候,应该如下:

v = reverse('author-polls:detail', kwargs={'pk':11})

{% url 'author-polls:detail' pk=11 %}

django中的路由系统和其他语言的框架有所不同,在django中每一个请求的url都要有一条路由映射,这样才能将请求交给对一个的view中的函数去处理。其他大部分的Web框架则是对一类的url请求做一条路由映射,从而是路由系统变得简洁。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: