模板不存在

时间:2018-11-22 13:19:18

标签: django

我是django的新手。我正在尝试通过构建项目来学习它。我想用我的主页替换django的localhost hompage。但是,我在主项目目录中找不到 views.py 。为什么?顺便说一句,我创建了一个新的'views.py',还创建了一个templates文件夹,并将index.html放在名为 englishexchange 的模板内的另一个目录中。以下是项目结构。   englishexchange / manage.py和exnglishexchange / views.py,urls.py和template / englishexchange / index.html

englishexchange / url.py

from django.contrib import admin
from django.urls import path
from . import views

urlpatterns = [
path('', views.index, name = 'index'),
path('admin/', admin.site.urls),
]

englishexchange / views.py

from django.shortcuts import render
def index(request): 
    return render(request, 'englishexchange/index.html')

,然后将模板目录放在主项目目录englishexchange 中。

我知道我可以通过制作另一个应用程序并将URL映射为''之类的方法来实现。但是我希望他们的主页与主要主页的静态主页不同。

我得到的错误就像

  

Django尝试按以下顺序加载这些模板:

     

使用引擎django:

     

django.template.loaders.app_directories.Loader:C:\ Users \ Sujeet Agrahari \ AppData \ Local \ Programs \ Python \ Python37-32 \ lib \ site-packages \ django \ contrib \ admin \ templates \ englishexchange \ index .html(源不存在)   django.template.loaders.app_directories.Loader:C:\ Users \ Sujeet Agrahari \ AppData \ Local \ Programs \ Python \ Python37-32 \ lib \ site-packages \ django \ contrib \ auth \ templates \ englishexchange \ index.html(源不存在

我相信它正在尝试在默认目录admin中查找模板。如何更改此行为,以便从主要项目目录中获取模板?

3 个答案:

答案 0 :(得分:0)

请确保您的views.py文件位于您创建的应用程序文件夹内,并且项目文件夹内的模板文件夹而非您的应用程序文件夹内,以便更改当前主页,只需添加  path('home/', views.index , name = 'index'), 您可以用任何您想要主页URL的内容替换home。

答案 1 :(得分:0)

确保将其添加到您的设置文件中

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',
        ],
    },
},

]

您可以在其中将DIRS中的“模板”更改为要将模板文件保留到的任何文件夹。

答案 2 :(得分:0)

但是,我在主项目目录中找不到views.py。为什么?

Django鼓励您为几乎所做的任何事情开发应用程序。因此,主项目目录中没有views.py。

关于模板渲染,请务必添加:

os.path.join(BASE_DIR,'templates')

在上面的答案中所述的“ DIR”中。