Python框架_Django: app_name&namespace存在的意义

参考

What does the django namespace solve?

app_name存在的意义

不同的应用存在相同的url,为了避免使用reverse()方法出现反向解析错误

namespace存在的意义

一个项目可以创建多个url映射到一个app中,那么如何让app的reverse()区分到底是哪个url访问它呢
有namespace必须有app_name,反之不成立

Analyse

NAMESPACE和APP_NAME不存在的日子

实现功能:请求index 界面后重定向到reverse(‘login’),无法成功反向解析url

在这里插入图片描述

NAMESPACE和APP_NAME存在的日子

在这里插入图片描述

Q&A

  • 无APP_NAME,urls.py 中每个path内的name 是啥?
    答:该path的第一个参数的别名

  • 每个子路由中的app_name 用来干嘛?
    答: 一个Django 项目可以有很多个application,每个子路由可能都是一个新的应用,用来区别各应用

  • 有APP_NAME和NAMESPACE时,url 是如何被解析的?
    答:可以通过读取当前NAMESPACE 知道是总路由中哪一条path 被触发, 然后再进入子路由中

  • 如果 reverse() 中的参数为app_name:path ,是否能正常跳转

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值