社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Django

Django 知识库:reverse()路由解析

FullStack程序猿 • 5 年前 • 595 次点击  

假设已经有了这么一个路由:

  1. path('foo/', some_view, name='foo_name'),

想从页面模板某处链接跳转到视图函数中就非常容易了,用如下模板语法:

  1. href="{% url 'foo_name' %}">Jump

现在问题来了,如果我想从视图函数中跳转到另一个视图函数该怎么办呢?这种情况是有可能发生的,比如某个视图会根据条件的不同而转换到不同的视图中去。

很简单,有现成的 redirect() 函数可使用:

  1. return redirect('/foo/')

但是这样把 url 硬编码到代码里了,不美。更好的写法就要用到主角 reverse() 了:

  1. return redirect(reverse('foo_name'))

这样写的好处是你可以任意更改 url 实际地址,只要路由的 name 不变,都是可以解析到正确的地址中去的。

带有参数的写法如下:

  1. reverse('another_name', args=(id,))

因此带有参数的路由也可以正确解析了。简单又好用吧。

用之前记得导入:

  1. from django.urls import reverse

  2. from django.shortcuts import redirect


?time=1589299236.09
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/62816
 
595 次点击