Django не видит html

И снова Джанго не может найти шаблон (TemplateDoesNotExist)

Я нашел много тем с такой проблемой, но не могу решить мою проблему с этим. Так что еще раз, пожалуйста, помогите решить проблему. Как я уже сказал, Django не может найти шаблон, но он существует в директории «template». И этот каталог также существует в моей «settings.py».

TEMPLATE_DIRS = ( os.path.join(BASE_DIR, 'templates'), #BASE_DIR + "/templates/", ) 

Как вы можете видеть, я попробовал два разных способа. Без успеха. Со всеми шаблонами в этом каталоге. Как я вижу, путь к папке шаблонов в журнале ошибок отсутствует.

Template-loader postmortem Django tried loading these templates, in this order: Using loader django.template.loaders.filesystem.Loader: Using loader django.template.loaders.app_directories.Loader: /Users/slavaspirit/Documents/Django Tests/Test05/testapp/lib/python2.7/site-packages/django/contrib/admin/templates/profile.html (File does not exist) /Users/slavaspirit/Documents/Django Tests/Test05/testapp/lib/python2.7/site-packages/django/contrib/auth/templates/profile.html (File does not exist) /Users/slavaspirit/Documents/Django Tests/Test05/testapp/lib/python2.7/site-packages/imagekit/templates/profile.html (File does not exist) /Users/slavaspirit/Documents/Django Tests/Test05/testapp/lib/python2.7/site-packages/allauth/templates/profile.html (File does not exist) /Users/slavaspirit/Documents/Django Tests/Test05/testapp/lib/python2.7/site-packages/allauth/socialaccount/providers/facebook/templates/profile.html (File does not exist) 
""" Django settings for sisrosta project. Generated by 'django-admin startproject' using Django 1.8. For more information on this file, see https://docs.djangoproject.com/en/1.8/topics/settings/ For the full list of settings and their values, see https://docs.djangoproject.com/en/1.8/ref/settings/ """ # Build paths inside the project like this: os.path.join(BASE_DIR, . ) import os BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # Quick-start development settings - unsuitable for production # See https://docs.djangoproject.com/en/1.8/howto/deployment/checklist/ # SECURITY WARNING: keep the secret key used in production secret! SECRET_KEY = '[email protected]&9ja@&xtuc%q7rk3(uon6z$lb2jr!9jcq84h2_c*fe' # SECURITY WARNING: don't run with debug turned on in production! DEBUG = True ALLOWED_HOSTS = [] SITE_ID = 1 # Application definition INSTALLED_APPS = ( 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.sites', 'imagekit', 'allauth', 'taggit', 'allauth.account', 'allauth.socialaccount', 'allauth.socialaccount.providers.facebook', 'article', 'usercard', ) AUTHENTICATION_BACKENDS = ( 'django.contrib.auth.backends.ModelBackend', 'allauth.account.auth_backends.AuthenticationBackend', ) MIDDLEWARE_CLASSES = ( 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.auth.middleware.SessionAuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django.middleware.security.SecurityMiddleware', ) TEMPLATE_CONTEXT_PROCESSORS = ( 'django.contrib.auth.context_processors.auth', 'django.core.context_processors.debug', 'django.core.context_processors.i18n', 'django.core.context_processors.media', 'django.core.context_processors.static', 'django.core.context_processors.tz', 'django.contrib.messages.context_processors.messages', 'django.core.context_processors.request', 'allauth.account.context_processors.account', 'allauth.socialaccount.context_processors.socialaccount', ) LOGIN_REDIRECT_URL = '/' SOCIALACCOUNT_QUERY_EMAIL = True SOCIALACCOUNT_PROVIDERS = < 'facebook': < 'SCOPE': ['email'], 'AUTH_PARAMS': , 'METHOD': 'oauth2', 'VERIFIED_EMAIL': False > > ROOT_URLCONF = 'sisrosta.urls' 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', ], >, >, ] WSGI_APPLICATION = 'sisrosta.wsgi.application' # Database # https://docs.djangoproject.com/en/1.8/ref/settings/#databases DATABASES = < 'default': < 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'test.sqlite3'), >> TEMPLATE_DIRS = ( os.path.join(BASE_DIR, 'templates'), #BASE_DIR + "/templates/", ) # Internationalization # https://docs.djangoproject.com/en/1.8/topics/i18n/ LANGUAGE_CODE = 'ru-RU' TIME_ZONE = 'Europe/Moscow' USE_I18N = True USE_L10N = True USE_TZ = True # Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/1.8/howto/static-files/ STATIC_URL = '/static/' 

Источник

Читайте также:  Class queue in python

Почему Django 4.1.7 не находит index.html?

Я хотел начать изучать Django, но когда я захожу на свой сайт, Django ругается, потому что не может найти файл index.html. Я просмотрел уже многие сайты, но, как я понял, там решение для старых версий Django. Добавление os.join.path(BASE_DIR, ‘tamplates’) не помогает(и похожие решения тоже не помогают). С наименованием файла, к которому я обращаюсь(index.html) всё нормально, проверил все места, где он упоминается, уже раза 3. Да и вообще в целом я делал всё также, как в этом видео: https://www.youtube.com/watch?v=Em-8EvV9w3o Может кто–то уже сталкивался с похожей проблемой?

Почему Django не находит реверс при входе и выходе из аккаунта?
Я хочу дать возможность пользователям входить и выходить из аккаунта я хочу сделать так, что бы при.

Проект на Django + Vue3. Webpack не видит index.html
Коллеги, всем здравия! есть проект на Django + Vue3 сборка webpack`ом. все работало до перехода.

После установки joomla почему не находит administrator/index.php?
Только установил joomla 3.8 добавил разных языков, и всё ок только при вводе правильного логина и.

index.html на index.aspx (index.php. )
Вот, собственно, мучаясь с проблемой вылета сайта из топа 1000 (до этого было более 10 топовых (#1).

ЦитатаСообщение от Priz01 Посмотреть сообщение

Все так пишут, но на слово верить нельзя
Тут лучше действовать по старинке, копи паста текста ошибки, и содержимое urls, views в студию.

kazak, лучше я тогда весь проект скину, т.к. я попробовал ещё добавить в папку templates папку myapp1 и туда поместить index.html, но всё равно ничего не заработало.

Тут весь код ошибки из консоли:

Internal Server Error: /
Traceback (most recent call last):
File «C:\Python\Python311\Lib\site-packages\django\core\handlers\exception.py», line 56, in inner
response = get_response(request)
^^^^^^^^^^^^^^^^^^^^^
File «C:\Python\Python311\Lib\site-packages\django\core\handlers\base.py», line 197, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File «C:\Users\Anna\Desktop\1projdjpy\myapp1\views.py», line 6, in index_page
return render(request, ‘myapp1\index.html’)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File «C:\Python\Python311\Lib\site-packages\django\shortcuts.py», line 24, in render
content = loader.render_to_string(template_name, context, request, using=using)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File «C:\Python\Python311\Lib\site-packages\django\template\loader.py», line 61, in render_to_string
template = get_template(template_name, using=using)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File «C:\Python\Python311\Lib\site-packages\django\template\loader.py», line 19, in get_template
raise TemplateDoesNotExist(template_name, chain=chain)
django.template.exceptions.TemplateDoesNotExist: myapp1\index.html
[19/Mar/2023 18:12:15] «GET / HTTP/1.1» 500 73820
[19/Mar/2023 18:12:15,261] — Broken pipe from (‘127.0.0.1’, 1870)
Internal Server Error: /
Traceback (most recent call last):
File «C:\Python\Python311\Lib\site-packages\django\core\handlers\exception.py», line 56, in inner
response = get_response(request)
^^^^^^^^^^^^^^^^^^^^^
File «C:\Python\Python311\Lib\site-packages\django\core\handlers\base.py», line 197, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File «C:\Users\Anna\Desktop\1projdjpy\myapp1\views.py», line 6, in index_page
return render(request, ‘myapp1\index.html’)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File «C:\Python\Python311\Lib\site-packages\django\shortcuts.py», line 24, in render
content = loader.render_to_string(template_name, context, request, using=using)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File «C:\Python\Python311\Lib\site-packages\django\template\loader.py», line 61, in render_to_string
template = get_template(template_name, using=using)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File «C:\Python\Python311\Lib\site-packages\django\template\loader.py», line 19, in get_template
raise TemplateDoesNotExist(template_name, chain=chain)
django.template.exceptions.TemplateDoesNotExist: myapp1\index.html
[19/Mar/2023 18:12:15] «GET / HTTP/1.1» 500 73690
Not Found: /favicon.ico
[19/Mar/2023 18:12:18] «GET /favicon.ico HTTP/1.1» 404 2219

И вот ещё то, что появляется при попытке открыть сайт(в zip архиве):

Лучший ответ

Сообщение было отмечено Priz01 как решение

Решение

Это значит, что шаблоны также будут искаться в папках приложений. Т.е. можно разметить templates в папке myapp1 -> myapp1\templates\myapp1

Вариант 2.
Для Вашего проекта BASE_DIR = 1projdjpy, шаблоны расположены по пути mydlangoproject\templates, т.е. полный путь до шаблонов BASE_DIR\mydlangoproject\templates. В settings же указано

kazak, kazak, от души спасибо! Я с этим всем всё утро мучился, а нужно было просто сделать так:

‘DIRS’: [str(BASE_DIR) + ‘\\mydlangoproject\\templates’],

Добавлено через 1 минуту
(я решил сначала попробовать второй вариант, поэтому на счёт того, рабочий ли первый, не знаю)

ЦитатаСообщение от Priz01 Посмотреть сообщение

Как сделать что бы первым загружался не index.php а index.html
Как сделать что бы первым загружался не index.php а index.html Находил в гугл инфо, пробовал.

Настройка Nginx: index.html и index.php в разных каталогах
Всем привет! В nginx.conf есть такие строки root /home/site/www; index index.html index.php; .

Как сделать отображене нужного мне контента в index.php и index.html ?
Здравствуйте ! Подскажите пожалуйста . Опишу ситуацию вкратце есть форум index.php в главной.

Как сделать одинаковое отображене нужного мне контента в index.php и index.html ?
Здравствуйте ! Подскажите пожалуйста .И извините за глупый вопрос.К php редко обращаюсь. Опишу.

Electron.js, доступ из main.js к index.html (index.js)
Пишу приложение с использованием Electron js. И вот целый день пытаюсь узнать, можно ли из.

Источник

Django не отображает HTML с тегами, назначенными в коде Python

Я хочу показать химическую формулу соединения с индексом. У меня есть список соединений, и некоторые из них должны быть написаны с использованием индекса. Я написал следующий код:

def contains_number(string): new_string = '' int_str_list = list(map(str, list(range(9)))) for item in string: if item in int_str_list: new_string += ' '+item+' ' else: new_string += item return new_string 

Этот код работает, и когда я передаю строку, такую как Fe2O3, я получаю вывод как: Fe2O3 который я хочу. Однако, когда я передаю это как переменную контекста в шаблон Django, он не отображается как Fe 2 O 3, а как текст Fe2O3 . Поскольку я новичок в Django, я что-то упускаю, я знаю. Как я могу это исправить?

Эти два выхода выглядят одинаково для меня, что отличается? Какой код вы используете для передачи в качестве контекста?

Это была моя мысль точно. Он отображается в браузере, как, например, Fe2O3 ., Который, если поместить его в простой html, даст подписанный текст.

@ Stellasia: Замечательно, это был виновник. Большое спасибо. Пожалуйста, опубликуйте это как ваш ответ, чтобы я мог принять его.

если item является пользовательским вводом, вы должны сначала удалить его, затем вы можете отключить автоэкранирование

3 ответа

Ваша проблема связана с тегом HTML побега. Выключите autoescape в шаблонах django, и он должен работать нормально:

Django autoescapes шаблонные переменные. Если вы посмотрите на источник сгенерированного вывода, вы увидите что-то вроде <sub>2.

Не включайте автоматическое отрисовку, если string параметров вводится пользователем!

Автоматическое экранирование предотвращает атаки XSS, поэтому его устранение может устранить вашу проблему, но может привести к уязвимости системы безопасности, если вы точно не знаете, что делаете.

from django.utils.html import escape from django.utils.safestring import mark_safe def contains_number(string): new_string = '' for item in string: if item.isdigit(): # we know item is a number, so no need to escape it new_string += ' '+ item +' ' else: new_string += escape(item) # we built new_string from safe parts, so we can mark it as # safe to prevent autoescaping return mark_safe(new_string) 

Источник

Оцените статью