django的url路由

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"

 

转载于:https://www.cnblogs.com/ttyypjt/p/10375675.html