如何在 Django html 模板中的 <a href='url' 标签中的模板子目录中引用 html 文件



我对django很陌生,下面是我的项目模板文件夹结构

templates
index.html
about.html
contact.html
student
index.html
Attendance
attendance.html
....
Exams
results.html
exam1.html
.....
Misc
teachers
index.html
hrms
adminlogin.html
payslip.html
principallogin.html
....
....

urs.py:

urlpatterns = [
path('admin/', admin.site.urls),
path("",home,name="home"),

views.py:

def home(request):
return render(request, 'index.html')

到目前为止,这一切都很好,如果我

index.html:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div class="u-custom-menu u-nav-container">
<ul class="u-nav u-spacing-30 u-unstyled u-nav-1"><li class="u-nav-item"><a class="u-border-0 u-border-no-bottom u-border-no-left u-border-no-right u-border-no-top u-button-style u-nav-link u-text-active-palette-1-base u-text-grey-90 u-text-hover-palette-1-base" href="{% url 'home' %}" style="padding: 20px 5px;">Home</a>
</li><li class="u-nav-item"><a class="u-border-0 u-border-no-bottom u-border-no-left u-border-no-right u-border-no-top u-button-style u-nav-link u-text-active-palette-1-base u-text-grey-90 u-text-hover-palette-1-base" href="about.html" style="padding: 20px 5px;">About</a>
</li><li class="u-nav-item"><a class="u-border-0 u-border-no-bottom u-border-no-left u-border-no-right u-border-no-top u-button-style u-nav-link u-text-active-palette-1-base u-text-grey-90 u-text-hover-palette-1-base" href="contact.html" style="padding: 20px 5px;">Contact</a>
</li><li class="u-nav-item"><a class="u-border-0 u-border-no-bottom u-border-no-left u-border-no-right u-border-no-top u-button-style u-nav-link u-text-active-palette-1-base u-text-grey-90 u-text-hover-palette-1-base" href="" style="padding: 20px 5px;">Login</a>
<div class="level-2 u-nav-popup u-white u-nav-popup-1">
<ul class="u-h-spacing-20 u-nav u-popupmenu-items u-unstyled u-v-spacing-10 u-nav-2">
<li class="u-nav-item"><a class="u-button-style u-nav-link" href="/hrms/adminlogin.html">Administrator</a></li>
<li class="u-nav-item"><a class="u-button-style u-nav-link" href="/hrms/mangementlogin.html">Management</a></li>
<li class="u-nav-item"><a class="u-button-style u-nav-link" href="/hrms/principallogin.html">Principal</a></li>
<li class="u-nav-item"><a class="u-button-style u-nav-link" href="/teacher/index.html">Teacher</a></li>
<li class="u-nav-item"><a class="u-button-style u-nav-link" href="/student/index.html">Student</a></li>
</ul>
</div>
</li>
</ul>
</div>
</body>
</html>

我们在运行项目时收到以下错误消息,需要帮助解决此问题。

Not Found: /hrms/adminlogin.html
[01/Nov/2022 10:50:06] "GET /hrms/adminlogin.html HTTP/1.1" 404 4299
Not Found: /hrms/mangementlogin.html
[01/Nov/2022 10:50:06] "GET /hrms/mangementlogin.html HTTP/1.1" 404 4359
Not Found: /hrms/principallogin.html
[01/Nov/2022 10:50:06] "GET /hrms/principallogin.html HTTP/1.1" 404 4362
Not Found: /teacher/index.html
[01/Nov/2022 10:50:06] "GET /teacher/index.html HTTP/1.1" 404 4338
Not Found: /student/index.html
[01/Nov/2022 10:50:06] "GET /student/index.html HTTP/1.1" 404 4344

我们需要在锚标签中给出什么,即<a href=在html模板中打开模板子目录中指定的html页面,即以下项目模板文件夹结构中提到的文件

templates
index.html
about.html
contact.html
student
index.html            <-- this file
Attendance
attendance.html   <-- this file
....
Exams
results.html
exam1.html
.....
Misc
teachers
index.html
hrms
adminlogin.html
payslip.html
principallogin.html
....
....

如上所述尝试

而不是

<li class="u-nav-item"><a class="u-button-style u-nav-link" href="/hrms/adminlogin.html">Administrator</a></li>

添加此

<li class="u-nav-item"><a class="u-button-style u-nav-link" href="/hrms/adminlogin/">Administrator</a></li>

现在为您想要呈现的每个页面创建视图和url,因为Django内置了模板加载程序库。

ulr就像

urlpatterns = [
path('admin/', admin.site.urls),
path("",home,name="home"),
path("adminlogin/",adminlogin,name="adminlogin"),

视图类似

def home(request):
return render(request, 'index.html')
def adminlogin(request):
return render(request, 'hrms/adminlogin.html')

最新更新