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

Python框架_Django: app_name&namespace存在的意义_第1张图片

NAMESPACE和APP_NAME存在的日子

Python框架_Django: app_name&namespace存在的意义_第2张图片

Q&A

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

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

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

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

你可能感兴趣的:(Python)