django 中url与path小记

Posted rightsec

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django 中url与path小记相关的知识,希望对你有一定的参考价值。

1. 在django 2.0中增加了一些新的特性

  • 更简单的URL路由语法 (Simplified URL routing syntax)
  • admin应用的针对移动设备的优化改进(Mobile-friendly contrib.admin)
  • 支持SQL开窗表达式(Window expressions)

第一个特性,主要用于动态路由定义上。在Django2.0代码实现中,主要的变化是新增了 django.urls.path 函数,它允许使用一种更加简洁、可读的路由语法。比如之前的版本的代码:
在django中url和path的区别

url(r^articles/(?P<year>[0-9]4)/$, views.year_archive),

 2. Django中 url和path都是配置路径,有什么区别?

django.urls path
django.conf.urls url

 path 与url 是两个不同的模块,效果都是响应返回页面,path 调用的是python 第三方模块或者框架,而url是自定义的模块,如views 下的def 函数对应url的参数值

值得注意的是,在版本1.x中使用url,在版本2.x中使用path

所以在很多教程中新手需要注意
3. Import变动
django.urls.path 可以看成是 django.conf.urls.url 的增强形式。

4.小结
第一,目前 路由(url)到视图(View)的流程可以概括为四个步骤:

  1. url匹配
  2. 正则捕获
  3. 变量类型转化
  4. 视图调用

Django2.0 和之前相比多了 变量类型转化 这一步骤
第二,新的path语法可以解决一下以下几个场景:

  1. 类型自动转化
  2. 公用正则表达式

tips

还有待补充

参考

参考链接1

以上是关于django 中url与path小记的主要内容,如果未能解决你的问题,请参考以下文章

Django中url与path及re_path区别

Django小记

Django 路由层(urlconf)

Django - Python - URL 与这些都不匹配

Django2.0版本 path与Django1.x版本url正则匹配问题

re_path 的 Django 模板 url NoReverseMatch