簡體   English   中英

django:找不到頁面 (404)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM