我是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中查找模板。如何更改此行为,以便从主要项目目录中获取模板?
答案 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”中。