re_path
和path
的作用都是一样的。只不过re_path
是在写url
的时候可以用正则表达式,功能更加强大。- 写正则表达式都推荐使用原生字符串。也就是以r开头的字符串。
- 在正则表达式中定义变量,需要使用圆括号括起来。这个参数是有名字的,那么需要使用
(?P<参数的名字>)
。然后在后面添加正则表达式的规则。
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()
函数中正则表达式的使用,这里就不做叙述了,大家可以自行百度