from django.conf.urls import url
from . import views
urlpatterns = [
#...
url(r'^articles/([0-9]{4})/$', views.year_archive, name='news-year-archive'),
#...
]
def year_archive(request,hehe):
print(hehe)
return render(request,'url.html',context={'year_list':[ele for ele in range(1000,1011)]})
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<a href="{% url 'news-year-archive' 2012 %}">2012 Archive</a> # 注意模版语言的用法,注意参数的传递方法
{# Or with the year in a template context variable: #}
<ul>
{% for yearvar in year_list %}
<li><a href="{% url 'news-year-archive' yearvar %}">{{ yearvar }} Archive</a></li>
{% endfor %}
</ul>
</body>
</html>
def redirect_to_year(request,hehe):
# ...
year = 2006
# ...注意参数的传递方法
return HttpResponseRedirect(reverse('news-year-archive', args=(year,)))
网上看的反向解析url的,都么有year_archive的详细介绍,这个函数是要有第二个参数的,即为([0-9]{4})中的参数。
如果不添加第二个参数,就会出现错误,只有一个参数,却传进来两个参数。