4.0版本的django,据说url被删除要用re_path
但是改了还是不行
根据报错内容看是路径是空的,是路径问题没错,建议换成绝对路径,不要用相对路径。另外,需要排查路径访问权限问题
有时候我们在写url匹配的时候,想要写使用正则表达式来实现一些复杂的需求,那么这时候我们可以使用re_path
来实现。re_path
的参数和path
参数一摸一样,只不过第一个参数也就是route
参数可以为一个正则表达式。
在正则表达式中定义变量,需要使用圆括号括起来。这个参数是有名字的,那么需要使用?P<参数的名字>
。然后在后面添加正则表达式的规则。
正则表达式 | 作用 |
---|---|
^ | 匹配字符串开头的位置 |
$ | 匹配字符串结尾的位置 |
from django.urls import path, re_path
from django.conf.urls import url
from . import views
# from django.conf.urls import url 这导入的url实际上返回return re_path
# re_path : 第一个参数也就是route参数可以成为正则表达式
# @Time : 2020/6/17 23:45
# @Author : SmallJ
from django.urls import path, re_path
from django.conf.urls import url
from . import views
# from django.conf.urls import url 这导入的url实际上返回return re_path
# re_path : 第一个参数也就是route参数可以成为正则表达式
urlpatterns = [
path("", views.index),
path("p/<int:page_number>/", views.index_number),
path("p", views.index_number),
# 正则表达式
# ^ 开始 $结尾
re_path(r"^article/(?P<year>\d{4})/", views.year_index),
re_path(r"^article/(?P<month>\d[1-12])/", views.month_index)
]