Django - Urls分发

新版本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

猜你喜欢

转载自blog.csdn.net/qq_42292831/article/details/93381011