如何在 django 中从一个页面转到另一页面?

问题描述 投票:0回答:3

我是Python编程新手,我创建了一个学习项目。我创建了三个 html 页面,当我单击其他页面链接时,它显示错误找不到页面,因为 url 显示上一页链接和当前页面链接(我不知道如何解释我的问题)

例如

我有两页索引,主页

如果我在索引页面上(索引页面的网址是“http://127.0.0.1:8000/index/”)并且想要转到主页,当我单击主页链接时,它会显示错误,因为主页的网址是“http://127.0.0.1:8000/index/home/”,我想要这样的主页网址“http://127.0.0.1:8000/home/”。当我想从主页转到索引页但当我手动编写时,页面会正确打开

我的代码

index.html 和 home.html 链接的参考代码

<a class="collapse-item" href="home">Home Page</a>
<a class="collapse-item" href="index">Index Page</a>

视图.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")

应用程序/urls.py

from django.urls import path

from . import views

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

项目/urls.py

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

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include("app.urls")),
]
python django url
3个回答
0
投票

您需要更改“app/urls.py”和“href”属性。在 django 中,每个 URL 都应该通过名称来访问。


0
投票

django-doc,您可以使用django的

url
标签,要使用url标签,您必须在
path
文件中的
urls.py
函数中给出名称。

试试这个:

应用程序/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:
基于函数的视图,例如您定义的
index_view
home_view
,不需要
view
后缀。只有基于类的视图需要
view
后缀。所以,如果你使用
index
home
会更好。


0
投票

拜托,我已经完成了所有必需的操作,但我仍然遇到问题,因为当我单击“关于”按钮时,它不会将我带到该页面,但我可以通过浏览器访问该页面。我该怎么办?

© www.soinside.com 2019 - 2024. All rights reserved.