[英]django: Page not found (404)
項目/urls.py
from django.contrib import admin
from django.urls import path, include
from django.http import HttpResponse
urlpatterns = [
path("admin/", admin.site.urls),
path("", include('todo.urls')),
]
設置.py
TEMPLATES = [
{
"BACKEND": "django.template.backends.django.DjangoTemplates",
"DIRS": [os.path.join(BASE_DIR, "templates")],
"APP_DIRS": True,
"OPTIONS": {
"context_processors": [
"django.template.context_processors.debug",
"django.template.context_processors.request",
"django.contrib.auth.context_processors.auth",
"django.contrib.messages.context_processors.messages",
],
},
},
]
待辦事項/ulrs.py
from django.urls import path
from . import views
urlpatterns = [
path("login", views.home),
]
待辦事項/views.py
from django.http import HttpResponse
from django.shortcuts import render
def home(request):
return render(request, 'index.html')
我不知道為什么它沒有顯示我的頁面...我創建了名為 taskly 的 django 項目。 在那個項目中,我只有 1 個名為 todo 的應用程序。 我已經提到了模板文件夾,正如您在上面看到的那樣。 在該模板文件夾中,只有一頁 index.html
如果您希望端點為“登錄”而不是“登錄/”,則在settings.py
添加APPEND_SLASH=False
默認情況下它被設置為 false 檢查文檔以獲取更多信息。
這是 Django 的核心功能之一,它會自動添加“尾部斜杠”。
Django 將自動重定向 301。 你可以看到這樣的日志:
"GET /login HTTP/1.1" 301 0
"GET /login/ HTTP/1.1" 200 6596
而不是這個:
path("login", views.home),
試試這個:
path("login/", views.home), #added forward slash here
你應該在登錄名和路徑名后添加“/”,
urlpatterns = [
path("login/", views.home, name="login"),
]
如果它不起作用,請添加有問題的 HTML 鏈接標簽讓我檢查
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.