django之路由层

一,简单配置:

url是一个内置的函数,里面需要四个参数,后面两个现在还不涉及,先简单介绍前两个

第一个参数是正则表达式(如果要精准匹配:'^publish/$')

第二个参数是视图函数(不需要加括号)

例如:-url(r'^admin/', admin.site.urls),

二,无名分组(在正则匹配中分组)

1,按位置传参

2,分组之后,会把分组出来的数据,当位置参数,传到视图函数,所以视图函数需要定义形参,来接收传过来的参数

3,-url(r'^publish/([0-9]{4})/([0-9]{2})$', views.publish),
   -def publish(request,*args):   视图函数可以这样接收

三,有名分组(在正则匹配中定义有名分组)

1,按关键字传参

2,分组之后,会把分组出来的数据,当关键字参数,传到视图函数,所以视图函数需要定义形参,形参的名字要跟分组的名字对应,与顺序无关

3,url(r'^publish/(?P<year>[0,9]{4})/(?P<month>[0,9]{2})/$',views.publish)

  def publish(request,month,year):

注意:有名分组和无名分组不要混用

四,反向解析:

1,先命名,在urls中

无参数:url(r'^publishadd/$',views.publish,name='add')
无名分组:url(r'^publishadd/([0,9]{4})/$',views.publish,name='add')
有名分组:url(r'^publishadd/(?P<year>[0,9]{4})/(?P<mounth>[0-9]{2})/$',views.publish,name='add')

2,在模板层

无参数:{% url 'add' %}
无名分组:{% url 'add' 2018 12 %}
有名分组:{% url 'ddd' 2018 12 %}  还可以 {% url 'ddd' year=2018 mounth=12 %}

3,在视图层

from django.shortcuts import reverse
无参数:url=reverse('add')
无名分组:url=reverse('add',args=(2018,12,))
有名分组:url=reverse('add',args(2018,12,)) 还可以 url=reverse('add',kwargs={'year':2018,'mounth':12})

五,路由分发

1,在不同的app中创建urls.py

2,在总路由中

from django.conf.urls import include
url(r'^blog/',include('blog.urls')),
url(r'^app01/',include('app01.urls'))

3,在不同的app的urls里配置路由关系

注意:总路由,不能加结束符

六,名称空间

url(r'^blog/',include('blog.urls',namespase='blog')),

-子路由:url(r'^publish/$',views.publish,name='test')

反向解析:

              -视图层:url = reverse('blog:test')

              -模板层:{% url 'app01:test' %}

一般不要用:直接在子路由中设置不同的名字就好

子路由:url(r'^publish/$', views.publish,name='app01_test'),

七,伪静态

-路由:url(r'^book/(?P<id>\d+.html)',views.book),
        -访问:http://127.0.0.1:8000/book/4.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值