情景一:
<!--- 前端返回数据到后端的url ---> {% for k,v in USER_DICT.items %} <li><a href="/detail/?nid={{ k }}">{{ v.name }}</a></li> {# <li><a href="/detail-{{ k }}.html">{{ v.name }}</a></li>#} {% endfor %} url path('detail/', views.detail), 视图函数 def detail(request): nid = request.GET.get('nid') detail_info = USER_DICT[nid] return render(request, 'detail.html', {'detail_info': detail_info})
同理,url利用正则传参。
<!--- 前端返回数据到后端的url ---> {% for k,v in USER_DICT.items %} <li><a href="/detail-{{ k }}.html">{{ v.name }}</a></li> {% endfor %} 正则匹配url url(r'^detail-(\d+).html', views.detail), 视频函数 def detail(request,nid): detail_info = USER_DICT[nid] return render(request, 'detail.html', {'detail_info': detail_info})
注意:url正则匹配的时候,有多少个正则匹配,则参数必须得接收几个
正则匹配别名:url(r'^detail-(?P<nid>(\d+).html', views.detail).
添加别名的方法很简单。只需要在匹配正则的内容前端+ ?P<name>
如: (\d+)---> (?P<nid>\d+)
【完】