使用背景:
改動了一些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})