码迷,mamicode.com
首页 > 其他好文 > 详细

路由控制

时间:2018-11-08 20:49:22      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:正则   names   127.0.0.1   mount   uri   port   表达式   精准   lis   

路由层:

1简单匹配

  

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

  2、第二个参数是试图(不要加括号)

  3、Url(r’^admin/’,admin.site.urls),

 

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 2018 12 %}

  3、 有名分组:{% url ddd 2018 12 %}  还可以 {% url ddd year=2018 mounth=12 %}

在视图层:

  from django.shortcuts import reverse

在视图函数里:

  无参数:url=reverse(ddd)

  无名分组:url=reverse(ddd,args=(2018,12,))

  有名分组:url=reverse(ddd,args=(2018,12,)) 还可以 url=reverse(ddd,kwargs={year:2018,mounth:12})

路由分发:

  1、在不同的app里创建urls.py

  2、在总路由

  From django.conf.urls import include

  Url(‘^blog/’,include(‘blog.urls’)),

  url(r^app01/,include(app01.urls)),

******重点:总路由,不能加结束符$

 

名称空间:

-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),

 

伪静态:

 

路由:url(r^book/(?P<id>\d+.html),views.book),

访问:http://127.0.0.1:8000/book/4.html

 

 

 

 

路由控制

标签:正则   names   127.0.0.1   mount   uri   port   表达式   精准   lis   

原文地址:https://www.cnblogs.com/xuecaichang/p/9931667.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!