Я получаю сообщение об ошибке: страница не найдена в django

#python #html #css #django #twitter-bootstrap

#python #HTML #css #django #twitter-bootstrap

Вопрос:

Мой 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 = '''!()-[]{};:'",<>./?@#$%^amp;*_~'''
        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, а страница about и contact также находятся в 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 .

Комментарии:

1. /textutils/ это необходимо в файлах .html!

2. Я так не думаю.. Я просто тестирую, добавляя /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>
 

Наконец я получил ответ, для этого требуется код Jinja в index.html и весь код будет таким же, как и предыдущий. Единственное, что я внес изменения, это то, что в моем index.html страница.

Ответ №2:

Ваш html ссылается на /textutils/about

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

Однако, похоже, что ваши URL-адреса ожидают только about . Удаление textutils/ из ссылки должно сработать или добавить ее к вашему urls.py . файл

Комментарии:

1. Спасибо за помощь, но она тоже не работает.