url路由

注意: 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

 

posted @ 2018-12-06 21:57  hmm1995  阅读(154)  评论(0编辑  收藏  举报