Я создал функцию hello>view.py
def index (request):
return render(request,"hello/index.html")
и файл HTML в hello>template>hello>index.html, но это то, что у меня есть
Internal Server Error: /hello/
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/django/core/handlers/exception.py", line 47, in inner
response = get_response(request)
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/django/core/handlers/base.py", line 179, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/Users/douju/lecture3/hello/views.py", line 7, in index
return render(request,"hello/index.html")
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/django/shortcuts.py", line 19, in render
content = loader.render_to_string(template_name, context, request, using=using)
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/django/template/loader.py", line 61, in render_to_string
template = get_template(template_name, using=using)
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/django/template/loader.py", line 19, in get_template
raise TemplateDoesNotExist(template_name, chain=chain)
django.template.exceptions.TemplateDoesNotExist: hello/index.html
вот что в моих ХРАМАХ:
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',
],
},
},
]
Я полагаю, что вы создали папку шаблонов, когда вам нужны шаблоны (обратите внимание на S в конце).
Вау, это работает! Я не знаю, имя папки имеет значение
Django должен автоматически искать шаблоны, расположенные в каждом каталоге INSTALLED_APP
's templates/
. Если Django не находит шаблоны, возможно, у вас есть TEMPLATES['APP_DIRS']=False
в вашем settings.py
. Если он по-прежнему не находит ваши файлы шаблонов, рассмотрите возможность указания дополнительных каталогов шаблонов с помощью параметра TEMPLATES['DIRS']
:
TEMPLATES = [
{
"BACKEND": "django.template.backends.django.DjangoTemplates",
"DIRS": [os.path.join(BASE_DIR, "myapp/somefolder/templates")], # Specify a non standard template directory
"APP_DIRS": True, # Make sure this is 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",
],
},
},
]
Настройки шаблона Django: https://docs.djangoproject.com/en/3.1/ref/settings/#templates
Пожалуйста, проверьте, храните ли вы свои шаблоны в том же каталоге, который указан в вашем файле settings.py.