注意: url(r'^index/', views.index) 第一个index是提交跳转的网址 (可修改) 第二个是自定义的方法
url(r'^index666/', views.index)
如果想让链接地址为x.html而不是“?” ,
利用正则方式,匹配一类的值(一对多,动态路由方式)。
1.url直接匹配传值过来用detail方法获取,此时不用再利用get方式获取值
(1)基础变化
自己输入3
(2)对以上进行修改 一类url对应一个函数
点击
综上:
分别为 一个url对应一个函数 / 一个url对应一个类
一类url对应一个函数/ 一类url对应一个类
2.对于拼接的x.html 共有两种方式
(1)固定nid uid
(2)不固定
(3)对于键入“-2-9.html”
无论是否交换形参,1方法对键入的数值无影响 2 9 2 9 nid=2,uid=9
若交换形参,2方法因为形参改变而改变 2 9 9 2 按照形参位置赋值
输入2 9
综上:
万能参数
kwargs={'nid':1,‘uid’:3}
3. 不用再在html中修改
(1)正常情况下
如果修改一个当前访问的url 修改两部分 不简洁
1
2
3
(2)如果不用再在html中修改
1
2.表单中修改为 {%url ‘indexx ’ %} 以后不必再修改
3
(3)如果url中有数字/d
上述无效 必须主动在html中写任意数字 (不要忘记此时index需要接收,增加nid)
此任意数字是写死的 无论输入什么 都跳转到该字母
1
2 index需要接收,增加nid
3.
4
(4)要想实现显示的表单和url
修改{%url ‘indexx ’ %} 为{request.path_info}
综上:
4.实现跳转到其他页,自动生成要跳转的url
引入reverse包 根据名字生成url v为生成的url
(1)如果没有动态参数/d 直接是字母 直接就生成name
(2)如果后面有/d 则在reverse后面还需要传值args
在url中输入13 返回90
如果后面有/d/d
在url中输入13 11 返回90 88
(3)固定位置
综上:
5.路由分发
不同的APP使用url,必须要严格控制每个url不能重复,一旦重复 哪个App就会抢走匹配 其他就会无法匹配
1.新建两个App
==============
实现路由分发 这样即使方法对应url相同 也无妨
2.分别在新建的app01 02 中增加urls.py
3. 再进行两个views.py的编写
App01 原来的views
App02 返回字符串
3.再在总urls中引入 包,加入分发的urls
运行
01
02
6.默认值
不加默认值:
运行,点击链接 ,输入index
添加默认值:
必须加上形参
综上:
7.命名空间:
欠 21.02