django 中url与path小记

时间:2021-05-31 04:36:54

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