新版本Django中使用了path,拒绝正则输入匹配:
from django.urls import path
urlpatterns = [
path('admin/', admin.site.urls),
]
当使用正则表达式需要手动导入url包:
from django.conf.urls import url
urlpatterns = [
path('admin/', admin.site.urls),
url(r'article/2004$', views.article_year),
]
- 有命名分组
- 无命名分组
- 注意事项
一:无命名分组
#urls.py
#\d{4}匹配四个数字
#(xxx)加括号打包,使得views.py中可以获取作为参数
url(r'article/(\d{4})/(\d{2})', views.article_year_month),
#views.py
def article_year_month(request,y,m):
return HttpResponse("年份:{0} 月份:{1}".format(y,m))
二:有命名分组
#urls.py
url(r'article/(?P<year>\d{4})/(?P<month>\d{2})', views.article_year_month),
#views.py
def article_year_month(request,year,month):
return HttpResponse("年份:{0} 月份:{1}".format(year,month))
三:注意事项
正则表达式中的 $:
url(r'article/2004$', views.article_year),
可匹配内容:
xxxarticle/2004
dsfsdfsdfsarticle/2004