反向解析与重定向 | Django开发

Posted 胡说八道

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了反向解析与重定向 | Django开发相关的知识,希望对你有一定的参考价值。

1.html中的反向解析
    1.1 原理:给url起名字,根据url的名字找到对应的视图
        {% url register %}
        # 如果url匹配时携带参数:
        url(r^index/(\d+)/$, views.index, name=index),
        # 那么,在匹配到视图时就需要传入一个参数:
        def index(request,param):
            return render(request, index.html, {param:param})
        # 在页面中的url反向解析,也要传入对应参数
        <a href="{% url ‘index‘ 10 %}">跳转</a>
            
    1.2 {% url users:register %}与{% url register %}的区别?
        # 当项目中有多个应用的时候,给url起的名字就会相同,
        # 所以为了区分,才有的{% url ‘users:register‘ %};
        # 在使用{% url ‘register‘ %}时不要在项目urlconf中添加namespace;
        
2.视图中的反向解析
    1.1 导入模块
        from django.core.urlresolvers import reverse
        def index(request):
            redirect_url = reverse(index, args=(1,))
            return HttpReponse(ok)
            
3.视图中的重定向跳转:
    from django.shortcuts import redirect
    from django.core.urlresolvers import reverse
    ...
    return redirect(reverse(users:register))

 

以上是关于反向解析与重定向 | Django开发的主要内容,如果未能解决你的问题,请参考以下文章

【Django】路由配置:反向解析、重定向

jsp初识servlet转发转发与重定向的比较

Django模板--反向解析

SpringMVC-路径转发与重定向

Django之路由层 (有名和无名分组 反向解析 路由分发 名称空间)

Django运维后台的搭建之三:用url去精细定制与反向解析