Django2.0之后,如果url.py中需要添加正则,需要添加
from django.urls import re_path
路由规则详解:
# (d+)代表数字,"?P<artical_type_id>"和"?P<category_id>"代表传递到views.py中的参数为字典{"artical_type_id": (d+), "category_id": (d+)} re_path('artical-(?P<artical_type_id>d+)-(?P<category_id>d+).html', backend.artical),
#文章筛选,传递的参数为用户名、筛选条件(category、tag)、筛选条件的id(cta=category、tag) re_path('(?P<username>w+)/(?P<screening>w+)/(?P<screening_cta_id>w+).html', views.artical_screening),
例:http://127.0.0.1:8000/blog/test/category/1.html # 文章筛选,筛选出指定月份的文章,d{4}代表匹配4个数字,d{2}代表匹配2个数字 re_path('(?P<username>w+)/(?P<screening>w+)/(?P<screening_cta_id>d{4}-d{2}).html', views.artical_screening),
例:http://127.0.0.1:8000/blog/test/archive/2018-04.html
路由拼接:
url.py re_path('article-(?P<article_type_id>d+)-(?P<category_id>d+).html',views.article,name='article'), views.py url = reverse('article',kwargs={'article_type_id': '1', 'category_id': '0'}) print(url)
结果为"/artical-1-0.html"