如何在 Django 中从一页转到另一页?

How to go from one page to another in django?

我是 python 编程新手,我创建了一个学习项目。我创建了三个 html 页面,当我点击另一个页面时 link 它显示错误 找不到页面 因为 url 显示前一页 link 当前页面 link (我不知道如何解释我的问题)

例如

我有两页索引,首页

如果我在索引页上(url 索引页是 "http://127.0.0.1:8000/index/")并且想去当我点击主页 link 到主页时显示错误,因为主页的 url 是 "http://127.0.0.1:8000/index/home/ 我想要这样的主页 url "http://127.0.0.1:8000/home/"。当我想从主页转到索引页时会发生同样的事情,但是当我手动编写时,页面会正确打开

我的代码

index.html 和 home.html links

的参考代码
<a class="collapse-item" href="home">Home Page</a>
<a class="collapse-item" href="index">Index Page</a>

view.py

from django.shortcuts import render
from django.http import HttpResponse

def index_view(request):
    return render(request, "index.html")

def home_view(request):
    return render(request, "home.html")

app/urls.py

from django.urls import path

from . import views

urlpatterns= [
    path('index/', views.index_view),
    path('home/', views.home_view),

project/urls.py

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include("app.urls")),
]

django-doc开始,您可以使用django的url标签,要使用url标签,您必须在urls.pypath函数中给出名称] 文件。

试试这个:

app/urls.py

from django.urls import path

from . import views

urlpatterns= [
    path('index/', views.index_view,name='index'),
    path('home/', views.home_view,name='home')
]

在您的 template 文件中,您可以按以下方式使用:

<a class="collapse-item" href="{% url 'home' %}">Home Page</a>
<a class="collapse-item" href="{% url 'index' %}">Index Page</a>

Note: function based views like you have defined index_view and home_view, doesn't require view suffix. Only class based views require view suffix. So, it will be better if you use index and home.

您需要更改 'app/urls.py' 和 'href' 属性。在 Django 中,每个 URL 都应该使用名称访问。