使用url名称替代绝对或相对路径(django举例)

绝对路径和相对路径往往更易于理解,新手常使用路径引用某个文件,从而使构建的代码不够稳定。

在 Django 中设置 LOGIN_REDIRECT_URL 时,推荐使用 URL 的名称而不是相对路径或绝对路径。

这样做的好处是,如果未来更改了 URL 的结构,只需要在 urls.py 中更新 URL 的名称映射,而不需要在代码的其他部分进行修改。

最佳实现:"使用 URL 名称"

settings.py 文件中,将 LOGIN_REDIRECT_URL 设置为希望用户在登录后重定向到的 URL 的名称。例如:

# settings.py
LOGIN_REDIRECT_URL = 'playlist_list'  # 使用 URL 的名称

假设在 urls.py 中有一个名为 playlist_list 的 URL:

# urls.py
from django.urls import path
from . import views

urlpatterns = [
    # ......
    path('player/', views.playlist_list, name='playlist_list'),
]

相对路径或绝对路径为什么不好

一些注意事项:

  • 相对路径(如 '../player/')依赖于当前 URL 的结构,可能导致不稳定或不可预测的行为,尤其是应用扩展或重构时。
  • 绝对路径(如 '/player/')因为它不依赖于当前页面的 URL,但它仍不如使用 URL 名称那样灵活,因为如果 URL 变化,仍然需要更新 settings.py

总之,最稳妥和可维护的方法是使用 URL 名称。

这样一来, LOGIN_REDIRECT_URL 就与特定的 URL 路径解耦,从而 Django 应用更加灵活和易于维护。

不止django

编程语言都应该高内聚低耦合