Python Django:找不到模板/index.html
我正在使用Django运行一个网站。登录时没有问题。当我登录并单击某个仪表板时,它显示“未找到页面”(404) Views.py:Python Django:找不到模板/index.html,python,django,Python,Django,我正在使用Django运行一个网站。登录时没有问题。当我登录并单击某个仪表板时,它显示“未找到页面”(404) Views.py: def index(request): return(request,'obs_app/index.html') 设置.py import os BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) TEMPLATE_DIR = os.path.join(BASE_DIR,'t
def index(request):
return(request,'obs_app/index.html')
设置.py
import os
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
TEMPLATE_DIR = os.path.join(BASE_DIR,'templates/index.html')
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [TEMPLATE_DIR,],
'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',
],
'libraries': {
'get_by_index':'obs_app.templatetags.templatefilters',
'get_by_key':'obs_app.templatetags.templatefilters',
'get_dict':'obs_app.templatetags.templatefilters',
'get_items':'obs_app.templatetags.templatefilters',
'multiple':'obs_app.templatetags.templatefilters',
},
},
},
]
URL.py:
from django.contrib import admin
from django.urls import path
from django.conf.urls import url
from obs_app import views
urlpatterns = [
url(r'index/',views.index , name = 'index'),
path('admin/', admin.site.urls),
path('', views.user_login, name='user_login'),
path('dashboard',views.obs_index, name='admin_dash'),
path('halls/active',views.obs_halls_active,name='active-halls'),
path('halls/pending',views.obs_halls_pending,name='pending-halls'),
path('febs/userlist', views.febs_user_list, name='febs-users'),
path('bookings/user', views.bookings_user, name='bookings-users'),
path('bookings/owner', views.bookings_owner, name='bookings-owner'),
path('cancellation/user', views.cancelled_user, name='cancelled-user'),
path('cancellation/owner', views.cancelled_owner, name='cancelled-owner'),
path('terms/obs', views.terms_conditions, name='terms-conditions'),
path('terms/febs', views.terms_febs, name='terms-febs'),
path('terms/febs/events', views.terms_febs_events, name='terms-febs-events'),
我得到的错误是:
找不到页面(404)
当前路径index.html与这些路径中的任何一个都不匹配。您必须呈现模板并修复缩进
def index(request):
return render(request,'obs_app/index.html')
这里还需要提供目录而不是文件
TEMPLATE_DIR = os.path.join(BASE_DIR, 'templates')
更改:
TEMPLATE_DIR = os.path.join(BASE_DIR,'templates/index.html')
致:
您可能想阅读: 相关部分复制于此: DIRS定义了一个目录列表,引擎应该在其中按搜索顺序查找模板源文件
更改为
return render(request,'index.html')
您的TEMPLATE\u DIR
应该是一个目录,而不是模板文件。404是“找不到模板”的单独问题。在Django中,模板名称和URL是分开的。您有url(r'index/
,…),因此您可以在浏览器中转到/index/`而不是index.html
。
TEMPLATE_DIR = os.path.join(BASE_DIR, 'templates')
TEMPLATES = [
{
...
'DIRS': [], # DIRS defines a list of directories where the engine should look for template source files, in search order.
...
},
]