Получение TemplateDoesNotExist в / - PullRequest
0 голосов
/ 07 марта 2020

Я получаю сообщение об ошибке

TemplateDoesNotExist в /AI.html

Я пытался найти проблему, но не могу ее найти.

Метод запроса: GET URL запроса: http://127.0.0.1: 8000 / Django Версия: 3.0.4 Тип исключения: TemplateDoesNotExist Значение исключения:
AI. html Расположение исключения: C: \ Users \ Davids dator \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ django \ template \ loader.py в get_template, строка 19 Python Исполняемый файл: C: \ Users \ Davids dator \ AppData \ Local \ Programs \ Python \ Python37 \ python .exe Python Версия: 3.7.6 Python Путь:
['C: \ Users \ Davids dator \ Desktop \ templateee \ Mysite ',' C: \ Users \ Davids 'dator \ AppData \ Local \ Programs \ Python \ Python37 \ python37.zip', 'C: \ Users \ Davids dator \ AppData \ Local \ Programs \ Python \ Python37 \ DLLs ',' C: \ Users \ Davids dator \ AppData \ Local \ Programs \ Python \ Python37 \ lib ',' C: \ Users \ Davids dator \ AppData \ Local \ Programs \ Python \ Python37 ', 'C: \ Users \ Davids dator \ AppD ata \ Roaming \ Python \ Python37 \ site-packages ',' C: \ Users \ Davids '' dator \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages ']

Traceback

Среда:

Метод запроса: GET URL запроса: http://127.0.0.1: 8000 /

Django Версия: 3.0.4 Python Версия: 3.7.6 Установленные приложения: ['django .contrib.admin', 'django .contrib.auth', 'django .contrib.contenttypes', 'django. contrib.sessions ',' django .contrib.messages ',' django .contrib.staticfiles ',' MyApp '] Установленное промежуточное ПО: [' django .middleware.security.SecurityMiddleware ',' django. contrib.sessions.middleware.SessionMiddleware ',' django .middleware.common.CommonMiddleware ',' django .middleware.csrf.CsrfViewMiddleware ',' django .contrib.auth.middleware.AuthenticationMiddleware ',' django .contrib.messages.middleware.MessageMiddleware ',' django .middleware.clickjacking.XFrameOptionsMiddleware ']

После смерти загрузчика шаблонов Django попытался загрузить эти шаблоны в следующем порядке:

Использование движка django: * django .template.loaders.app_directories.Loader: C: \ Users \ Davids dator \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ django \ contrib \ admin \ templates \ AI. html (источник не существует) * django .template.loaders.app_directories.Loader: C: \ Users \ Davids dator \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ django \ contrib \ auth \ templates \ AI. html (источник не существует)

Трассировка (последний последний вызов): файл "C: \ Users \ Davids dator \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ django \ core \ handlers \ exception.py ", строка 34, во внутреннем ответе = файл get_response (запрос)" "1087 *: \ Users \ Davids dator \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ django \ core \ handlers \ base.py ", строка 115, в _get_response response = self.process_exception_by_middleware (e, request) File" C: \ Users \ Davids dator \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ django \ core \ handlers \ base.py ", строка 113, в _ge t_response response = wrapped_callback (request, * callback_args, ** callback_kwargs) Файл "C: \ Users \ Davids dator \ Desktop \ templateee \ Mysite \ MyApp \ views.py", строка 36, в индексе возвращает визуализацию (запрос ") AI. html ", {'form': context}) Файл" C: \ Users \ Davids dator \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ django \ shortcuts.py ", строка 19, в представлении содержимого = loader.render_to_string (имя шаблона, контекст, запрос, используя = использование) Файл "C: \ Users \ Davids dator \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ django \ template \ loader.py ", строка 61, в файле render_to_string template = get_template (template_name, using = using) Файл" C: \ Users \ Davids dator \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ Джанго \ шаблон \ loader.py», строка 19, в get_template поднять TemplateDoesNotExist (template_name, chain = chain)

Тип исключения: TemplateDoesNotExist в / Значение исключения: AI. html

Views.py

from django.shortcuts import render
from django.http import HttpResponse
import json
from django.views.decorators.csrf import csrf_exempt

from chatterbot import ChatBot

# Create your views here.
chatbot = ChatBot(
    'Ron Obvious',
    trainer='chatterbot.trainers.ChatterBotCorpusTrainer'
)

@csrf_exempt
def get_response(request):
    response = {'status': None}

    if request.method == 'POST':
        data = json.loads(request.body.decode('utf-8'))
        message = data['message']

        chat_response = chatbot.get_response(message).text
        response['message'] = {'text': chat_response, 'user': False, 'chat_bot': True}
        response['status'] = 'ok'

    else:
        response['error'] = 'no post data found'

    return HttpResponse(
        json.dumps(response),
            content_type="application/json"
        )

def Index (request):
    context = {'title': 'Chatbot Version 1.0'}
    return render(request, "AI.html", {'form': context})

Settings.py

import os

# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

project_root = os.path.abspath(os.path.dirname(__file__))

STATIC_DIRS = (
    os.path.join(project_root, 'static'),
)

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [],
        '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',
            ],
        },
    },
]

Urls.py

from django.contrib import admin
from django.conf.urls import include, url
from django.urls import path
from MyApp.views import Index, get_response
from django.conf.urls.static import static
from django.conf import settings

urlpatterns = [
    path('admin/', admin.site.urls),
    url('', Index),
    path('get-response/', get_response),
]

1 Ответ

1 голос
/ 07 марта 2020

В вашем settings.py отсутствует каталог шаблонов.

Вы должны добавить

TEMPLATES = [ { "BACKEND": "django.template.backends.django.DjangoTemplates", "DIRS": ["/absolute/path/to/your/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", ], }, }, ] 
...