动态路由关系表

情景一:

 

 

 

    <!--- 前端返回数据到后端的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+)

 

 

【完】

posted on 2020-04-23 10:50  yeyu1314  阅读(172)  评论(0编辑  收藏  举报