#深入理解# django 路由系统中 path 和 re_path 参数的区别

  1. re_pathpath的作用都是一样的。只不过re_path是在写url的时候可以用正则表达式,功能更加强大。
  2. 写正则表达式都推荐使用原生字符串。也就是以r开头的字符串。
  3. 在正则表达式中定义变量,需要使用圆括号括起来。这个参数是有名字的,那么需要使用(?P<参数的名字>)。然后在后面添加正则表达式的规则。

默认path(route, view, kwargs=None, name=None)
默认re_path(route, view, kwargs=None, name=None)

path()和re_path中的参数

默认path(route, view, kwargs=None, name=None)
默认re_path(route, view, kwargs=None, name=None)

1.route

route 是一个匹配URL的准则(类似正则表达式)。当Django响应一个请求时,它会从urlpatterns的第一项开始,按顺序依次匹配列表中的项,直到找到匹配的项。这些准则不会匹配GET和POST参数或域名。例如,URLconf在处理请求https://www.example.com/myapp/时,它会尝试匹配myapp/。处理请求https://www.example.com/myapp/?page=3 时,也只会尝试匹配 myapp/

2.view

当 Django 找到了一个匹配的准则,就会调用这个特定的视图函数,并传入一个HttpRequest对象作为第一个参数,被“捕获”的参数以关键字参数的形式传入。

3.kwargs

任意个关键字参数可以作为一个字典传递给目标视图函数。

4.name

为你的URL取名能使你在 Django 的任意地方唯一地引用它,尤其是在模板中。这个有用的特性允许你只改一个文件就能全局地修改某个URL模式。

关于re_path()函数中正则表达式的使用,这里就不做叙述了,大家可以自行百度

你可能感兴趣的:(django,python编程)