Пытаюсь загрузить простой html в Django, но появляется GET /homepage/ HTTP/1.1" 500 145

Я совсем новичок в разработке Django. Я сделал Учебник для приложения для опроса на официальной веб-странице Django, и все получилось хорошо. Поскольку у меня уже есть HTML с моего старого сайта, я хотел повторно использовать некоторые из них. Я решил создать приложение под названием "homepage" для главной страницы, которую вы получаете при посещении страницы (если это плохая практика, дайте мне знать). Поскольку главная страница - это более или менее просто вводный текст и навигационное меню без какой-либо фантастической функциональности, я не стал создавать БД (модели) в этом случае. Кроме того, я был уверен, что Django способен просто предоставить простой статический html без базы данных.

В папке hompage app файл urls.py выглядит следующим образом:

from django.urls import path
from . import views

urlpatterns = [
    path('', views.index1, name='index1'),]

и view.py следующим образом

from django.http import HttpResponse
from django.shortcuts import render


def index(request):
    return HttpResponse("Hello, world. You're at the polls index.")

Все работает нормально. Как только я пытаюсь загрузить html файл (здесь простой, чтобы проверить, работает ли он), я получаю сообщение об ошибке. Новый view.py выглядит как в предложенном учебнике:

def index(request):
    latest_question_list = 'Hallo'
    context = {'latest_question_list': latest_question_list}
    return render(request, 'homepage/index.html', context)

Структура папок такова, как предложено в учебнике:

myproject_dir/myproject

myproject_dir/homepage/templates/hompage/index.html

html:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>My test page</title>
  </head>
  <body>
    <p>This is my page</p>
    <p>{{latest_question_list}}</p>
  </body>
</html>

Опять же, это прекрасно работает с приложением опроса, которое у меня все еще работает в той же папке проекта. Это оставляет меня в замешательстве, и я с нетерпением жду ответа.

Установите путь по умолчанию в urls.py в urlpatterns списке вашего проекта.

from django.urls import path,include

urlpatterns=[
path('',include('homepage.urls'))
]

Затем его следующий route будет решаться через urls.py вашего приложения, то есть homepage.

Имя представления, которое у вас есть, отличается от того, которое вы определили в пути:

# Change the view to this:
def index1(request):
    latest_question_list = 'Hallo'
    context = {'latest_question_list': latest_question_list}
    return render(request, 'homepage/index.html', context)

или изменить путь с index1 на index.

Вернуться на верх