LINUX.ORG.RU

TemplateDoesNotExist at /

 ,


0

1

Добрый день.

Смотрю лекцию CS50's Web Programming with Python and JavaScript.

Конкретно по Django.

Делаю все, как в лекции. Посоветуйте, как решить проблему? У меня создана директория myproject, в которой

 del_objects.py  manage.py  myproject  newapp 

В newapp:

admin.py     migrations      models.py.save.1  __pycache__   urls.py
apps.py      models.py       models.py.save.2  templates.py  views.py
__init__.py  models.py.save  modesl.py.save    tests.py 

В urls.py:

from django.urls import path
from . import views

urlpatterns=[
path("", views.index)
]
 

В views.py:


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

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

В директории templates.py: index.html

В index.html:

 <!DOCTYPE html>
<html>
    <head>
        <title>Programmers</title>
    </head>
    <body>
        <h1>Programmers</h1>
    </body>
</html>

Иду в директорию myproject (в которой newapp)

 python3 manage.py runserver 

Копирую в браузер 127.0.0.1:8000/

TemplateDoesNotExist at /
index.html
Request Method:	GET
Request URL:	http://127.0.0.1:8000/
Django Version:	2.0
Exception Type:	TemplateDoesNotExist
Exception Value:	
index.html
Exception Location:	/usr/local/lib/python3.4/dist-packages/Django-2.0-py3.4.egg/django/template/loader.py in get_template, line 19
Python Executable:	/usr/bin/python3
Python Version:	3.4.3
Python Path:	
['/home/hidden/myproject',
 '/usr/local/lib/python3.4/dist-packages/Django-2.0-py3.4.egg',
 '/usr/lib/python3/dist-packages',
 '/usr/lib/python3.4',
 '/usr/lib/python3.4/plat-x86_64-linux-gnu',
 '/usr/lib/python3.4/lib-dynload',
 '/usr/local/lib/python3.4/dist-packages']
Server time:	Sat, 21 Jul 2018 10:50:40 +0000
Template-loader postmortem
Django tried loading these templates, in this order:

Using engine django:

django.template.loaders.app_directories.Loader: /usr/local/lib/python3.4/dist-packages/Django-2.0-py3.4.egg/django/contrib/admin/templates/index.html (Source does not exist)
django.template.loaders.app_directories.Loader: /usr/local/lib/python3.4/dist-packages/Django-2.0-py3.4.egg/django/contrib/auth/templates/index.html (Source does not exist)

В директории templates.py: index.html

Должен быть в папке templates в корне проекта или в templates приложениях. Чтобы работало первое, должно быть указано: 'DIRS': [os.path.join(BASE_DIR, «templates»)], чтобы второе: 'APP_DIRS': True

paganmind ()
Ответ на: комментарий от paganmind

Все правильно ниже?

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

...не работает.

Оно не работает, если удалить строчку 'APP_DIRS': True.
Оно не работает, если сделать 'APP_DIRS': False.
Оно не работает, если

                      'DIRS': []
                      'APP_DIRS': True
                       
Это есть
 
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 

hibiscusM ()
Ответ на: комментарий от hibiscusM

В директории templates.py: index.html

Почему она называется templates.py, а не просто templates?

paganmind ()
Ответ на: комментарий от paganmind

по ссылке предлагается https://docs.djangoproject.com/en/2.0/ref/templates/api/

You can also enable template caching with some custom template loaders using settings like this:

TEMPLATES = [{
    'BACKEND': 'django.template.backends.django.DjangoTemplates',
    'DIRS': [os.path.join(BASE_DIR, 'templates')],
    'OPTIONS': {
        'loaders': [
            ('django.template.loaders.cached.Loader', [
                'django.template.loaders.filesystem.Loader',
                'django.template.loaders.app_directories.Loader',
                'path.to.custom.Loader',
            ]),
        ],
    },
}]

Что думаете?

hibiscusM ()
Ответ на: комментарий от paganmind

спасибо, исправлено.

Но теперь в терминале после python3 manage.py runserver


  File "<frozen importlib._bootstrap>", line 1532, in source_to_code
  File "<frozen importlib._bootstrap>", line 321, in _call_with_frames_removed
  File "/home/hidden/myproject/myproject/settings.py", line 60
    'OPTIONS':{
            ^
SyntaxError: invalid syntax

hibiscusM ()
Ответ на: комментарий от hibiscusM

покажи файл /home/hidden/myproject/myproject/settings.py в окрестностях этого 'OPTIONS':{

bvn13 ★★★★★ ()

" бери джангоу говорили они, там все просто! "

в директории templates.py:
тут явно чтото нето

ggrn ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.