1.0版本中的url在2.0以下版本中Django的配置路由一直是由url来完成的,其格式一直是url(r^[路径命名]/$, [视图文件(views.py)中的方法名])如url(r^login/$, userLogin),userLogin这里指的就是views.py中的方法名2.0版本中的path在2.0中将url改成了path同时还有一些其他小的改动path([路径命名]/, [视图文件(views.py)中的方法名])这就是改变后的路由配置和上面的效果一样但是想获得url路径中内容时就变得很不一样如http://127.0.0.1:8000/active/123456小编想获得123456这窜数字在1.0版本中是这样的url(r^active/(?Ppath.*)/$, user_active) --命名参数按名字传递 或者 url(r^active/(.*)/$, user_active) --未命名参数按定义顺序传递其形式就是url(r^[路径命名]/(?P[参数命名][正则表达式])/$, [视图文件(views.py)中的方法名]) 或者 url(r^active/([正则表达式])/$, [视图文件(views.py)中的方法名])这里小编比较推荐命名参数按名字传递的方式用起来比较方便而在2.0中就变得不一样了它变成了path([路径命名]/[参数命名], [视图文件(views.py)中的方法名])如http://127.0.0.1:8000/active/123456就可以通过配置下面的路由去获取path(active/num/, user_active)这里num也可以写成int:num,也就是说这里是可以定义基本数据类型的.补充小编学习当中在djang官方文档中发现有一个re_path()的函数说是可以通过正则表达式来获取url路径也就是说在1.0版本中的url(r^active/(?Ppath.*)/$, user_active) --命名参数按名字传递 或者 url(r^active/(.*)/$, user_active) --未命名参数按定义顺序传递可以写成re_path(r^active/(?Ppath.*)/$, user_active) --命名参数按名字传递 或者 re_path(r^active/(.*)/$, user_active) --未命名参数按定义顺序传递小编用http://127.0.0.1:8000/active/wyh/2019/09/test.jpg通过下面的路由配置试了一下re_path(active/(?Ppath.*), serve, {document_root:STATIC_ROOT}),的确可以加载静态文件当然本着能省力绝不多写代码的原则小编还是推荐用path()转换格式类型说明str匹配除分隔符/外的非空字符Int匹配0和正整数Slug匹配字母、数字、横杠、下划线组成的字符串str的子集Uuid匹配格式化的UUIDpath匹配任何非空字符串包括路径分隔符是全集当不去写具体格式类型时它默认形式是str这里通过上面的http://127.0.0.1:8000/active/123456来向大家来说明这些格式转换格式类型写法strpath(active/num/, user_active) 或者 path(active/str:num/, user_active)Intpath(active/int:num/, user_active)Slugpath(active/slug:num/, user_active)pathpath(active/path:num/, user_active)这些都是可以用获得123456这段数字不过在这里path格式类型就有点大材小用了path一般用在像http://127.0.0.1:8000/active/wyh/2019/09/test.jpg这样的有多个分格符的,如下path(active/path:path, serve, {document_root: MEDIA_ROOT}),第一个path是格式类型第二个path就是命名参数其中path: wyh/2019/09/test.jpg。当然偷懒只是玩笑话大家还是需要根据项目的需求灵活运用path()和re_path()