django urls路由配置

学习django的路由配置时一般会用到两个函数path和re_path,re_path可以结合正则,在使用过程中我发现两个需要注意的点:
1.urls在查询路由的时候接收到的路由均是以字符串形式传递的,如下的例子

我在urlpatterns里写了两个路由
# http://127.0.0.1:8000/x1/sub/x2
path('<int:x1>/<str:x2>/<int:x3>', views.page_trans2),
# http://127.0.0.1:8000/year/month/day
re_path(r'^(?P<year>\d{4})/(?P<month>\d{1,2})/(?P<day>\d{1,2})$', views.page_trans4),

在测试re_path时,写入路由2004/11/10时,根据urls从上到下的查找路由的规则,遍历的2004,11,10都是str类型的,在path处对x1,x3进行了强制类型转换,11不转换仍然是str,所以path是满足要求的,因此会执行views.page_trans2,而不是views.page_trans4

2.在django的路由配置中传的参数叫什么在对应的视图里就应该取什么名字,视图函数中的形参名必须一样,简而言之path和re_path都是直接在视图里查找对应的参数的, 整个要一致


版权声明:本文为weixin_47125742原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。