$Django 路由层(有,无名分组、反向解析、总路由分发、名称空间、伪静态)

1 简单配置

  -第一个参数是正则表达式(如果要精准匹配:'^publish/$')
  -第二个参数是视图函数(不要加括号)
  -url(r'^admin/', admin.site.urls),

注:

当为网站根目录实现一个视图,你需要使用URL模式`` ‘^$’`` , 它代表一个空字符串

不需要添加一个前导的反斜杠,因为每个URL 都有。例如,应该是^articles 而不是 ^/articles

每个正则表达式前面的'r' 是可选的但是建议加上。它告诉Python 这个字符串是“原始的” —— 字符串中任何字符都不应该转义

 2 无名分组  

  -按位置传参
  -分组之后,会把分组出来的数据,当位置参数,传到视图函数,所以,视图函数需要定义形参
  -url(r'^publish/([0-9]{4})/([0-9]{2})$', views.publish),
  -def publish(request,*args):   视图函数可以这样接收

 3 有名分组 

  -按关键字传参
  -有名分组之后,会把分组出来的数据,当关键字参数,传到视图函数,所以,视图函数需要定义形参,形参名字要跟分组的名字对应,与顺序无关
  -url(r'^publish/(?P<year>[0-9]{4})/(?P<mounth>[0-9]{2})/$', views.publish),
  -def publish(request, mounth,year):
  *****有名分组和无名分组,不要混用 

4 反向解析 

   -先命一个名:
   -1 无参数:url(r'^publishadd133/$', views.publishadd,name='ddd'),
   -2 无名分组:url(r'^publishadd/([0-9]{4})/([0-9]{2})/$', views.publishadd,name='ddd'),
   -3 有名分组:url(r'^publishadd/(?P<year>[0-9]{4})/(?P<mounth>[0-9]{2})/$', views.publishadd,name='ddd'),
  -在模板层:
   -1 无参数:{% url 'ddd' %}
   -2 无名分组的:{% url 'ddd' foo.id %}
   -3 有名分组:{% url 'ddd' foo.year  foo.mounth %}  还可以 {% url 'ddd' year=foo.year mounth=foo.mounth %}
   
  -在视图层:
   from django.shortcuts import reverse
   在视图函数里:
   1 无参数:url=reverse('ddd')
   1 无名分组:url=reverse('ddd',args=(2018,12,))
   1 有名分组:url=reverse('ddd',args=(2018,12,)) 还可以 url=reverse('ddd',kwargs={'year':2018,'mounth':12})

 5 路由分发   

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里配置路由关系 
  ***重点***总路由,有子路由的 不能加结束符$

**** 项目下多个app项目****
注意点:1.可以在每个app下的model见表或者单独一个app管理model
          2.每个app下的admin.py都可以注册任意一个app的表,在后台表还是归类到自己所在的一个app下.

 

 6 名称空间  

  -url(r'^blog/',include('blog.urls',namespace='blog')),
  -子路由:url(r'^publish/$', views.publish,name='test'),
  -反向解析:
   -视图层:url = reverse('blog:test')
   -模板层:{% url 'app01:test'%}
  ***一般不要用***
   用这个:子路由:url(r'^publish/$', views.publish,name='app01_test'),

7 伪静态

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

转载于:https://www.cnblogs.com/3sss-ss-s/p/9923503.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值