我收到错误:在 django 中找不到页面

Posted

技术标签:

【中文标题】我收到错误:在 django 中找不到页面【英文标题】:I am getting error: Page not found in django 【发布时间】:2021-05-16 09:34:28 【问题描述】:

我的 urls.py 页面是这样的

from django.contrib import admin
from django.urls import path
from . import views

urlpatterns = [
  path('admin/', admin.site.urls),
  path('',views.index,name='index'),
  path('analyze/',views.analyze,name='analyze'),
  path('about/',views.about,name='about'),
  path('contact/',views.contact,name='contact'),
  
]

我的views.py页面是这样的

from django.http import HTTP Response
from django.shortcuts import render


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

def analyze(request):
    djtext=request.GET.get('text','default')
    removepunc=request.GET.get('removepunc','off')
    fullcaps=request.GET.get('fullcaps','off')
    spaceremover=request.GET.get('spaceremover','off')
    charcounter=request.GET.get('charcounter','off')
    wordcounter=request.GET.get('wordcounter','off')
    print(djtext)
    #analyzed=djtext
    
    if removepunc == 'on':
        punctuations = '''!()-[];:'"\,<>./?@#$%^&*_~'''
        analyzed=""
        for char in djtext:
            if char not in punctuations:
                analyzed=analyzed+char
        params='purpose':'Remove punctuations','analyzed_text':analyzed
        return render(request,'analyze.html',params)

    elif fullcaps=='on':
        # analyzed=djtext1
        analyzed=""
        for i in djtext:
            if i==" ":
                analyzed=analyzed+" "
            else:
                analyzed=analyzed+i.upper()
        params='purpose':'Capital Letter First','analyzed_text':analyzed
        return render(request,'analyze.html',params)
    
    elif spaceremover == 'on':
        analyzed=djtext.replace(" ","")
        params='purpose':'Space Remover','analyzed_text':analyzed
        return render(request,'analyze.html',params)

    elif charcounter == 'on':
        counter=0
        for char in djtext:
            if char==" ":
                continue
            else:
                counter=counter+1
        params='purpose':'Character Counter','analyzed_text':counter
        return render(request,'analyze.html',params)
    elif wordcounter == 'on':
        counter=1
        for char in djtext:
            if char==' ':
                counter=counter+1
        params='purpose':'Word Counter','analyzed_text':counter
        return render(request,'analyze.html',params)

    else:
        return HttpResponse("Error")
    

def about(request):
    return render(request,'about.html')

def contact(request):
    return render(request,'contact.html')

我的 index.html 页面——这里我只展示了可能出现错误的导航栏部分。我的 index.html 页面在 template/textutils 中,关于和联系页面也在 template/textutils 中。

<div class="collapse navbar-collapse" id="navbarNavDropdown">
            <ul class="navbar-nav">
                <li class="nav-item active">
                    <a class="nav-link" href="/">Home <span class="sr-only">(current)</span></a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="/textutils/about">About Us</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="/textutils/contact">Contact Us</a>
                </li>

          </ul>
</div>

我正在获取 index.html 页面,但我不会获取 about.html 页面和 contact.html 页面。我认为我的问题出在 urls.py 或 index.html 中。

【问题讨论】:

/textutils/ 是否需要在 .html 文件中! 我不这么认为..我只是通过添加/textutils/ 来测试。 【参考方案1】:

index.html

<div class="collapse navbar-collapse" id="navbarNavDropdown">
            <ul class="navbar-nav">
                <li class="nav-item active">
                    <a class="nav-link" href="/">Home <span class="sr-only">(current)</span></a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="% url 'about' %">About Us</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="% url 'contact' %">Contact Us</a>
                </li>

            </ul>
        </div>

最后我得到了答案,它需要 index.html 中的 Jinja 代码,所有代码都和以前一样。我所做的唯一更改是在我的 index.html 页面中。

【讨论】:

【参考方案2】:

您的 html 链接到 /textutils/about

<a class="nav-link" href="/textutils/about">About Us</a>

但是,您的 URL 似乎只需要 about。从链接中删除textutils/ 应该可以工作,或者将其添加到您的urls.py。文件

【讨论】:

感谢您的帮助,但它也不起作用。

以上是关于我收到错误:在 django 中找不到页面的主要内容,如果未能解决你的问题,请参考以下文章

在 django、pycharm 中找不到页面?

Django Admin '在 /admin/ 中找不到页面

在 Next.js 应用程序中找不到 API 路由(找不到该页面)

如果在 django 的 urls.py 中找不到,则将任何 url 重定向到 404.html

在 Django Rest Framework 中找不到资源时返回自定义 404 错误

示例教程在 Django 3 上找不到页面错误