一、有名分组 无名分组
#1 无名分组的使用
### 无名分组,把分组分出来的值,当作位置参数传递给视图函数
url(r'^login/([0-9]{4})/([0-9]{2})', views.login),
#2 有名分组的使用
### 有名分组,把分组出来的值,当作关键字参数传递给视图函数
url(r'^login/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})', views.login),
#3 有什么作用
可以从url地址中解析出参数,传递给视图函数使用
#4 案例
# 这种地址,把人名和id分出来
# 有名分组
# ilovejaney/p/13748739.html
url(r'^(?P<name>.*?)/p/(?P<id>d+).html', views.article),
# 无名分组
url(r'^(.*?)/p/(d+).html', views.article),
# 5 伪静态
-原来是动态页面/login 做成/login.html 伪装成静态页面,便于seo优化
-seo优化:
-https://www.cnblogs.com/liuqingzheng/articles/9509792.html
二、反向解析
1 通过路由的别名,解析出路由的地址
2 用在视图函数中:
url=reverse('home') # home就是路由的别名
print(url)
3 模板文件中使用
{% url 'meinv' %}
4 有什么作用
-动态根据路由别名获得路径,一旦路径改变,不需要改其他代码
三、名称空间
1 路由做反向解析时,有同名路由,出现问题
2 在做路由分发时,给每个app的路径设置一个名称空间
3 使用步骤
1 在总路由中设置
url(r'^app01',include('app01.urls','名称空间的名字') ),
-2 用在视图函数中:
url=reverse('名称空间的名字:home') # home就是路由的别名
print(url)
-3 模板文件中使用
{% url '名称空间的名字:meinv' %}