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

Django路由层

时间:2019-06-10 21:19:05      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:color   imp   col   参数传递   开头   info   font   名称   ima   

Urls的正则匹配

路由层作用是url与视图函数的映射

特点1.匹配成功后 不再往下匹配

  2.如果结尾没有/ 匹配失败后 加上/再走一次匹配列表,在settings.py中设置了 APPEND_SLASH=False 可以关闭

如何拿到完整url?

在视图函数中,request.path 可以拿到前缀路径

通过request.get_full_path() 可以拿到完整的路径

http://127.0.0.1:8000/test/hahah/?id=asda/

request.path》》》/test/hahah/

request.get_full_path()》》/test/hahah/?id=asda/

怎么取出url的一部分作为 参数传递给视图函数

有名分组和无名分组一定不能同时出现

 

有名分组

 

技术图片

无名分组

技术图片

视图函数可以使用默认关键字参数和默认位置参数 了解

 怎么给视图函数传递自定义的参数?:见博客

给匹配上的URL起别名降低耦合性 与 反向解析

url会经常改变,在视图函数中通过别名可以拿到真正的url,

from django.shortcuts import reverse 导入

在函数中?

技术图片

在模板中? 

{% url "别名" %}

{% url "test_url" %}

分组的url无法reverse ?-反向解析

无法解析  url(r"^test/(\d+)",views.test,name="test_url"), 这种类型

在函数中可以通过

xxx拿到分组

技术图片

模板中

技术图片

解析得到

 

有名分组

 技术图片

 

 路由分发

路由分发后 还是可以取到别的app下的name,无法隔离

每个app下都有自己的static templates,urls,view

总的urls起分发路由的作用

看到app02开头url 交给 app02.urls下的url处理

开始匹配第二层

技术图片

 

 技术图片

 技术图片

怎么解决 无法隔离url别名 -名称空间

1.名称空间  

技术图片

 

 两个app中 url名称重复了,我反转URL的时候就可以通过命名空间的名称得到我当前的URL。

 如:reverse("app01:xxx")


 

Django路由层

标签:color   imp   col   参数传递   开头   info   font   名称   ima   

原文地址:https://www.cnblogs.com/xzqpy/p/11000159.html

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