Django 框架:无法加载 'services' 页面
Django framework: unable to load 'services' page
我正在做一个 Django 项目。
我认为在django项目中使用'services'这个词有一些问题。请查看您是否可以在项目中找到所需的一些更正。
项目名称是你好。还有一个附加应用程序“home”。
当我导航到 索引、联系人或关于 页面时,它们都按预期工作(加载)。
我正在使用以下列表项(在 base.html 中)导航到“服务”页面:
<li><a class="dropdown-item" href="/services">Ice Cream</a></li>
但是 services 页面没有加载。如果我将 'services' 更改为 'service',那么它 works 照常工作。它给出了以下错误:
以下是部分文件内容:
Hello->urls.py
from django.contrib import admin
from django.urls import path, include
admin.site.site_header = "Harry Ice Cream Admin"
admin.site.site_title = "Harry Ice Cream Admin Portal"
admin.site.index_title = "Welcome to Harry Ice Creams!"
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('home.urls')),
]
home->urls.py
from django.contrib import admin
from django.urls import path
from home import views
urlpatterns = [
path('', views.index, name='home'),
path('about', views.about, name='about'),
path('services', views.services, name='services'),
path('contact', views.contact, name='contact'),
]
home->views.py
from django.shortcuts import render, HttpResponse
# Create your views here.
def index(request):
context = {
}
return render(request, 'index.html',context)
#return HttpResponse("This is homepage")
def about(request):
context = {
}
return render(request, 'about.html',context)
def services(request):
context = {
}
return render(request, 'services.html',context)
def contact(request):
context = {
}
return render(request, 'contact.html',context)
templates->index.html
{% extends 'base.html' %}
{% block title %} Home {% endblock title %}
{% block body %}
This is body content of index page.
{% endblock body %}
templates->about.html
{% extends 'base.html' %}
{% block title %} About {% endblock title %}
{% block body %}
This is body content of about page.
{% endblock body %}
templates->services.html
{% extends 'base.html' %}
{% block title %} About {% endblock title %}
{% block body %}
This is body content of services page.
{% endblock body %}
templates->contact.html
{% extends 'base.html' %}
{% block title %} About {% endblock title %}
{% block body %}
This is body content of contactpage.
{% endblock body %}
templates->base.html
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Bootstrap CSS -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
<title>{% block title %} {% endblock title %} | Harry IceCreams</title>
</head>
<body>
<!--nav class="navbar navbar-expand-lg navbar-light bg-light"-->
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
<div class="container-fluid">
<a class="navbar-brand" href="#">Harry Ice Creams</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="/">Home</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/about">About Us</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="/services" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
Services
</a>
<ul class="dropdown-menu" aria-labelledby="navbarDropdown">
<li><a class="dropdown-item" href="/services">Ice Cream</a></li>
<li><a class="dropdown-item" href="#">Softy</a></li>
<li><hr class="dropdown-divider"></li>
<li><a class="dropdown-item" href="#">Family Pack</a></li>
</ul>
</li>
<li class="nav-item">
<a class="nav-link" href="/contact">Contact Us</a>
</li>
</ul>
<form class="d-flex">
<input class="form-control me-2" type="search" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success" type="submit">Search</button>
</form>
</div>
</div>
</nav>
{% block body %} {% endblock body%}
<!-- Optional JavaScript; choose one of the two! -->
<!-- Option 1: Bootstrap Bundle with Popper -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous"></script>
<!-- Option 2: Separate Popper and Bootstrap JS -->
<!--
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.10.2/dist/umd/popper.min.js" integrity="sha384-7+zCNj/IqJ95wo16oMtfsKbZ9ccEh31eOz1HGyDuCQ6wgnyJNSYdrPa03rtR1zdB" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.min.js" integrity="sha384-QJHtvGhmr9XOIpI6YVutG+2QOK9T+ZnN4kzFN1RtK3zEFEIsxhlmWl5/YESvpZ13" crossorigin="anonymous"></script>
-->
</body>
</html>
你可以试试http:127.0.0.1:8000/services
不是这个http:127.0.0.1:8000/services/
删除最后一个 url /
如果你想让它工作 http:127.0.0.1:8000/services/
你需要在 urls.py 文件中编辑以下内容。
urlpatterns = [
path('', views.index, name='home'),
path('about', views.about, name='about'),
path('services/', views.services, name='services'),
path('contact', views.contact, name='contact'),
]
如您所见,我将 / 放在“服务”url 路径的末尾。
<li><a class="dropdown-item" href="/services">Ice Cream</a></li>
为此,请执行以下操作。
<li><a class="dropdown-item" href="{% url 'services' %}">Ice Cream</a></li>
这个 {% url 'services' %} 来自你的 services 的 name url 路径.
我正在做一个 Django 项目。
我认为在django项目中使用'services'这个词有一些问题。请查看您是否可以在项目中找到所需的一些更正。
项目名称是你好。还有一个附加应用程序“home”。
当我导航到 索引、联系人或关于 页面时,它们都按预期工作(加载)。
我正在使用以下列表项(在 base.html 中)导航到“服务”页面:
<li><a class="dropdown-item" href="/services">Ice Cream</a></li>
但是 services 页面没有加载。如果我将 'services' 更改为 'service',那么它 works 照常工作。它给出了以下错误:
以下是部分文件内容:
Hello->urls.py
from django.contrib import admin
from django.urls import path, include
admin.site.site_header = "Harry Ice Cream Admin"
admin.site.site_title = "Harry Ice Cream Admin Portal"
admin.site.index_title = "Welcome to Harry Ice Creams!"
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('home.urls')),
]
home->urls.py
from django.contrib import admin
from django.urls import path
from home import views
urlpatterns = [
path('', views.index, name='home'),
path('about', views.about, name='about'),
path('services', views.services, name='services'),
path('contact', views.contact, name='contact'),
]
home->views.py
from django.shortcuts import render, HttpResponse
# Create your views here.
def index(request):
context = {
}
return render(request, 'index.html',context)
#return HttpResponse("This is homepage")
def about(request):
context = {
}
return render(request, 'about.html',context)
def services(request):
context = {
}
return render(request, 'services.html',context)
def contact(request):
context = {
}
return render(request, 'contact.html',context)
templates->index.html
{% extends 'base.html' %}
{% block title %} Home {% endblock title %}
{% block body %}
This is body content of index page.
{% endblock body %}
templates->about.html
{% extends 'base.html' %}
{% block title %} About {% endblock title %}
{% block body %}
This is body content of about page.
{% endblock body %}
templates->services.html
{% extends 'base.html' %}
{% block title %} About {% endblock title %}
{% block body %}
This is body content of services page.
{% endblock body %}
templates->contact.html
{% extends 'base.html' %}
{% block title %} About {% endblock title %}
{% block body %}
This is body content of contactpage.
{% endblock body %}
templates->base.html
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Bootstrap CSS -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
<title>{% block title %} {% endblock title %} | Harry IceCreams</title>
</head>
<body>
<!--nav class="navbar navbar-expand-lg navbar-light bg-light"-->
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
<div class="container-fluid">
<a class="navbar-brand" href="#">Harry Ice Creams</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="/">Home</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/about">About Us</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="/services" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
Services
</a>
<ul class="dropdown-menu" aria-labelledby="navbarDropdown">
<li><a class="dropdown-item" href="/services">Ice Cream</a></li>
<li><a class="dropdown-item" href="#">Softy</a></li>
<li><hr class="dropdown-divider"></li>
<li><a class="dropdown-item" href="#">Family Pack</a></li>
</ul>
</li>
<li class="nav-item">
<a class="nav-link" href="/contact">Contact Us</a>
</li>
</ul>
<form class="d-flex">
<input class="form-control me-2" type="search" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success" type="submit">Search</button>
</form>
</div>
</div>
</nav>
{% block body %} {% endblock body%}
<!-- Optional JavaScript; choose one of the two! -->
<!-- Option 1: Bootstrap Bundle with Popper -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous"></script>
<!-- Option 2: Separate Popper and Bootstrap JS -->
<!--
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.10.2/dist/umd/popper.min.js" integrity="sha384-7+zCNj/IqJ95wo16oMtfsKbZ9ccEh31eOz1HGyDuCQ6wgnyJNSYdrPa03rtR1zdB" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.min.js" integrity="sha384-QJHtvGhmr9XOIpI6YVutG+2QOK9T+ZnN4kzFN1RtK3zEFEIsxhlmWl5/YESvpZ13" crossorigin="anonymous"></script>
-->
</body>
</html>
你可以试试http:127.0.0.1:8000/services
不是这个http:127.0.0.1:8000/services/
删除最后一个 url /
如果你想让它工作 http:127.0.0.1:8000/services/
你需要在 urls.py 文件中编辑以下内容。
urlpatterns = [
path('', views.index, name='home'),
path('about', views.about, name='about'),
path('services/', views.services, name='services'),
path('contact', views.contact, name='contact'),
]
如您所见,我将 / 放在“服务”url 路径的末尾。
<li><a class="dropdown-item" href="/services">Ice Cream</a></li>
为此,请执行以下操作。
<li><a class="dropdown-item" href="{% url 'services' %}">Ice Cream</a></li>
这个 {% url 'services' %} 来自你的 services 的 name url 路径.