django-reverse()

使用背景:

改动了一些urls文件中的url地址,发现更改后需要去views里面寻找到底哪些redirect或者用到这些url的地方一一更改,

情绪由稳定->烦躁->试图重构

reverse函数能做什么来挽救:

我们定义一个url大概

path("test/test/test/",views.test,name="test")

使用过name就知道,name就是为了我们更改url后,需要一处一处的更改前端我们的<a></a>,前端只需要

<a>"{url 'test'}"</a>

reverse就是通过url_name在后端完成反译

fromfrom django.shortcuts import reverse,redirect

def test(request):
    test_url = reverse("test")
    return redirect(test_url)

这样无论我如何更改url,还是通过name来指定

扩展-url不是简单的路径而是一个动态的路径:

如果我们的url不是一个简单的静态url,而是一个带着参数的url

path("url/<test1>-<test2>/",views.test,name="test")

没事儿,我们的reverse也支持参数

reverse("test",kwargs={"test1":1,"test2":2})

猜你喜欢

转载自www.cnblogs.com/newliu/p/11754004.html