关于django路由问题(路由分发 反向解析 命名空间)

路由分发:

  • 当项目中存在多个app时,为了方便管理,可使用路由分发
  • 作用:方便管理/使URL 地址更加赏心悦目
  • 使用方法:
    • 子app中创建urls.py文件
    • 主路由
      • path(‘app/’,app.urls)

反向解析

  • 出现一个问题,比如我们把其中某个路由规则进行了修改,把 aaa 换成了 aba ,那么现在我们需要
    回到每一个使用到这个路由的地方进行同步修改,这显然非常麻烦的,如果修改的路由更多,这甚至是一个灾
  • django 也为我们提供了一个解决办法,通过为路由映射使用 name 参数,来为每一个路由映射设置一个独立唯
    一的变量名
  • 作用:在路由改变时,我们无需回头改路由的名字,节省时间
  • 在需要a标签跳转时用{%url ‘函数名’%}来跳转,需要传参时,空格加参数。#‘abc’ 123 ‘def’

< a href="{% url ‘left’ ‘abc’ %}">右页面short
a标签需要问号传参时在%}后可直接加

  • 视图层:需要django.shortcuts 模块下的 reverse 函数

return redirect(reverse(“left”,args=(‘aaa’,) ))
参数介绍
reverse(viewname,args=None,kwargs=None)
viewname:视图函数、命名路由映射、或视图函数路径的字符串
args:元组形式路由传参。
kwargs:字典形式路由传参

命名空间

  • 若两个app同时有同一个index路由,访问时可能达不到效果,这时我们需用到命名空间
  • 主路由中
    • path(‘app1/’,include(“app1.urls”,namespace=“app1”)),

    • 这时我们给了这个app一个命名空间,接着我们会用命名空间的名字
  • 需要a标签跳转时
    • < a href="{% url ‘app1:right’ 123 %}">app1的右页面

  • 重定向时
    • return redirect(reverse(“app1:left”))

结论:这些是django中url的一些用法。使用时,增加代码的重用性,也方便我们管理,使条理清晰。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值