【问题标题】:Can't render template, getting page not found (404) Django无法呈现模板,找不到页面(404)Django
【发布时间】:2022-01-06 12:30:48
【问题描述】:

我似乎找不到错误,网站运行正常,但是当我请求 http://127.0.0.1:8000/test 时,我收到 404 错误,我觉得自己很愚蠢,我真的被困在这个问题上了,请帮助:(

错误:


Page not found (404)
Request Method:     GET
Request URL:    http://127.0.0.1:8000/test

Using the URLconf defined in project4.urls, Django tried these URL patterns, in this order:

    admin/
    [name='index']
    login [name='login']
    logout [name='logout']
    register [name='register']
    posts-json/ [name='posts-view-json']
    ^network/static/(?P<path>.*)$
    ^media/(?P<path>.*)$

The current path, test, didn’t match any of these.

You’re seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard 404 page.

这是我的网址


from django.urls import path
from django.conf import settings
from django.conf.urls.static import static

from . import views
from .views import post_view_json, profile_test_view


urlpatterns = [
    path("", views.index, name="index"),
    path("login", views.login_view, name="login"),
    path("logout", views.logout_view, name="logout"),
    path("register", views.register, name="register"),
    path("test/", profile_test_view, name="test"),

    # endpoints
    path("posts-json/", post_view_json, name="posts-view-json")
]


urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

这是一个社交网站,我正在尝试在页面上呈现帖子和用户的个人资料。

我的看法

from django.contrib.auth import authenticate, login, logout
from django.db import IntegrityError
from django.http import HttpResponse, HttpResponseRedirect
from django.http.response import JsonResponse
from django.shortcuts import render
from django.urls import reverse
from django.core import serializers

from .models import User, Post, Profile

def index(request):
    qs = Post.objects.all()
    context = {
        'hello': 'hello world!',
        'qs':qs,
    }
    return render(request, "network/index.html", context)


def post_view_json(request):
    qs = Post.objects.all()
    data = serializers.serialize('json', qs)
    return JsonResponse({'data': data})

def profile_test_view(request):
    profile = Profile.objects.get(user=request.user)
    return render(request, "network/profile_test.html", {'profile':profile})

【问题讨论】:

    标签: python python-3.x django django-views


    【解决方案1】:

    urls.py 中有一个斜杠,但您调用的 URL 中没有。

    像这样更改urls.py

    ...
    urlpatterns = [
        path("", views.index, name="index"),
        path("login", views.login_view, name="login"),
        path("logout", views.logout_view, name="logout"),
        path("register", views.register, name="register"),
        path("test", profile_test_view, name="test"), # <-- NOTE: I removed the slash here
    
        # endpoints
        path("posts-json/", post_view_json, name="posts-view-json")
    ]
    ...
    

    或致电http://127.0.0.1:8000/test/

    【讨论】:

    • 我都试过了,都没有成功,同样的错误@dacx
    • 重启服务器后成功了,谢谢
    猜你喜欢
    • 2023-04-02
    • 2016-08-01
    • 2016-08-01
    • 2015-10-22
    • 2014-03-20
    • 2020-10-27
    • 2019-07-21
    • 1970-01-01
    • 2019-02-02
    相关资源
    最近更新 更多