gpt4 book ai didi

django - Django 中的 URL 路由

转载 作者:行者123 更新时间:2023-12-02 03:15:13 24 4
gpt4 key购买 nike

我对 URL 和 Django 还很陌生,并且有一些问题。

现在我有 2 个正确路由的 HTML 模板: home.html 和ladder.html 。

如果我再次点击主页没有任何反应,我该怎么做才能从ladder.html(ladder/)返回到home.html("")。其次,当我在梯子上并再次单击梯子时,它会在 URL 中添加另一个梯子/,并且我收到路由器错误,我该如何解决此问题?

感谢您的帮助。

我将显示我的导航栏的代码,其中我的 href 属性,以便您可以理解我的意思和我的 urls.py

我的链接:

<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a class="nav-link" href="">Home<span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="ladder/">Ladders</a>

我的urls.py:

from django.contrib import admin
from django.urls import path
from pages.views import home_view,ladder_view
from django.contrib.staticfiles.urls import static
from django.contrib.staticfiles.urls import staticfiles_urlpatterns

urlpatterns = [
path('', home_view),
path('admin/', admin.site.urls),
path('ladder/',ladder_view),

]

最佳答案

home的路径是/,所以你可以这样写:

<a class="nav-link" href=<b>"/"</b>>Home<span class="sr-only">(current)</span></a>

但是话虽如此,硬编码 URL 并不是一个好主意。您应该为您的 URL 命名,并使用 {% url ... %} [Django-doc]模板标签,例如:

# app/urls.py

from django.contrib import admin
from django.urls import path
from pages.views import home_view,ladder_view
from django.contrib.staticfiles.urls import static
from django.contrib.staticfiles.urls import staticfiles_urlpatterns

urlpatterns = [
path('', home_view<b>, name='home'</b>),
path('admin/', admin.site.urls),
path('ladder/',ladder_view<b>, name='ladder'</b>),
]

在模板中,您可以将其写为:

<li class="nav-item active">
<a class="nav-link" href="<b>{% url 'home' %}</b>">Home<span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="<b>{% url 'ladder' %}</b>">Ladders</a>
</li>

如果您稍后更改路径,或将该 View 移动到另一个应用程序,则 URL 将会更改,因为 Django 在呈现模板时“计算”URL。 Django 文档有一个名为 Naming url patterns [Django-doc] 的主题关于这一点。

关于django - Django 中的 URL 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56350496/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com