codecamp

Django4.0 URL调度器-命名URL模式

为了完成反向解析 URL ,你需要像上面那样使用 命名 URL 模式 。用于命名 URL 的字符串可以包含任意字符,并不仅限于 Python 里合法的命名。

当命名 URL 模式时,请选择名称与其他应用名称冲突的名字。如果你命名的 URL 模式 ​comment和其他应用程序做了同样的事情,​reverse()​ 查询出的 URL 会是在项目的 ​urlpatterns列表里靠后的那个。

在 URL 名称前加入前缀,可以来自app名称(比如 ​myapp-comment​ 而不是 ​comment ​),这样可以减少冲突。

如果你想覆盖某个视图,你可以有意选择一些和应用程序 相同的URL名。比如,一个常见的案例是覆盖 ​LoginView ​。Django 的部分和绝大多数第三方 app 假设这个视图有名叫 ​login的 URL 模式。如果你有名叫 ​login的自定义登录视图,​reverse()​ 将会在 ​django.contrib.auth.urls​ 之后寻找你的自定义视图。

如果多个 URL 模式的参数不同,也可以使用相同的名称。除了 URL 名称外, ​reverse()​ 会匹配参数的数量和关键字参数的名称。路径转换器也可以引发 ​ValueError​ 表示不匹配。


Django4.0 URL调度器-URL的反向解析
Django4.0 URL调度器-URL命名空间
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

Django4.0 模型和数据库

Django4.0 处理HTTP请求

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }