Django 路由系统

djang 1.11

Django的路由系统---本质--------》路由与视图的映射关系表

1.基本格式

2.正则表达式分组匹配  -  参数捕获

3.命名url 和 url反向解析

4.命名空间

1.
url(r'^admin/', admin.site.urls),
# 从别的app找路由
url(r'^blog/', include('blog.urls')),
2.
# 正则匹配路由 从 http://127.0.0.1:8000/ 开始 分组匹配传参处理请求的函数必修接收
url(r'^articles/([0-9]{4})/([0-9]{2})/([0-9]+)/$', views.article_detail),
# 分组命名匹配处理请求的函数必修以关键字接收
url(r'^testindex/(?P<id>[0-9]{4})', views.testindex),
3.
# 给url起别名
url(r'^index', Index.as_view(),name='index'),
url(r'^home', Home.as_view(),name='home'),
作用实例:在模板中如---------》{% url 'home' %}  这就很活了不用因为url改了就该上千处
url(r'^articles/([0-9]{4})/$', views.year_archive, name='news-year-archive'),
<a href="{% url 'news-year-archive' 2012 %}">2012 Archive</a>
# 反向解析
from django.urls import reverse
reverse("index", args=("2018", )) -----视图中
4.
# 当在多个应用中使用同一个url名称 建议使用   appname_urlname
# 当你的app名都相同的时候 -------》
# 即使不同的APP使用相同的URL名称,URL的命名空间模式也可以让你唯一反转命名的URL。
urlpatterns = [
    url(r'^app01/', include('app01.urls', namespace='app01')),
    url(r'^app02/', include('app02.urls', namespace='app02')),
]   -------------------》 使用参数 namespace 
# 两个app中 url名称重复了,我反转URL的时候就可以通过命名空间的名称得到我当前的URL。
{% url 'app01:detail' pk=12 pp=99 %}
v = reverse('app01:detail', kwargs={'pk':11}) ----------》 这里注意写法就行

DJango 2.0

 

名称空间

名称空间:当项目的应用较多时,别名可能存在相同的可能
此时可以定义名称空间,以保证查找的唯一性
如何用名称空间
主路由:
# include第一个参数是元祖 元祖里面第一个是url子路由url的位置 第二个是应用的名字 
# namespace 命名空间--用于反向解析
url(r'^app01/',include(('app01.urls','app01'),namespace='app01')) 
子路由:
    urlpatterns = [
        url(r'^test/',views.test,name ="test")
    ]
无参数情况 
模板:
    {% url 'app01:test' %}
视图函数:
    url = reverse('app01:test')
有参数情况 
模板:
{% url 'app01:test' '变量' %}
视图
    url = reverse('app01:test',args=(xxx,))
    关键字
    url = reverse('app01:test',kwargs={'k1':v1,'k2':v2})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值