我的第一个django应用程序-如何导入模板?
我正在django 3.1.1中创建我的第一个django应用程序。有老django版本的视频教程,它们并不总是有效。。。我想为主页和“关于”部分创建HTML页面。我已经写了一些HTML文件,但是我的第一个django应用程序-如何导入模板?,django,django-views,django-templates,django-3.1,Django,Django Views,Django Templates,Django 3.1,我正在django 3.1.1中创建我的第一个django应用程序。有老django版本的视频教程,它们并不总是有效。。。我想为主页和“关于”部分创建HTML页面。我已经写了一些HTML文件,但是 def home(request): return render(request, 'home.html') 不想工作。我添加了我的文件树,以便您查看文件的结构 RemoveBigFile ├── RBF1module │ ├── __init__.py │
def home(request):
return render(request, 'home.html')
不想工作。我添加了我的文件树,以便您查看文件的结构
RemoveBigFile
├── RBF1module
│ ├── __init__.py
│ ├── admin.py
│ ├── apps.py
│ ├── migrations
│ │ └── __init__.py
│ ├── models.py
│ ├── tests.py
│ └── views.py
├── RemoveBigFile
│ ├── __init__.py
│ ├── __pycache__
│ │ ├── __init__.cpython-38.pyc
│ │ ├── settings.cpython-38.pyc
│ │ ├── urls.cpython-38.pyc
│ │ ├── views.cpython-38.pyc
│ │ └── wsgi.cpython-38.pyc
│ ├── asgi.py
│ ├── settings.py
│ ├── urls.py
│ ├── views.py
│ └── wsgi.py
├── RemoveBigFile.sublime-project
├── RemoveBigFile.sublime-workspace
├── db.sqlite3
├── manage.py
└── templates
├── about.html
└── home.html
这就是我得到的错误信息:
TemplateDoesNotExist at /
home.html
Request Method: GET
Request URL: http://127.0.0.1:8000/
Django Version: 3.1.1
Exception Type: TemplateDoesNotExist
Exception Value:
home.html
Django还要求我将我的模板放在Django的一个主要安装目录templates中,据我所知,如果我这样做,我将无法将我的应用程序发送给其他人(这就是我完成后打算使用它的方式)。
我使用我的RemoveBigFile/RemoveBigFile views.py将django指向HTML模板
编辑:根据请求,我从settings.py添加模板定义
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',
],
},
},
]
如我所见,DIRS中没有任何内容。我应该把模板的路径放在DIRS括号中吗
我还有一个问题-在manage.py所在的文件夹中还是在settings.py所在的文件夹中放置模板更好?Django在名为
templates
的文件夹中查找模板您需要在应用程序文件夹中创建该文件夹,并将home.html
放入其中。Django在名为模板
您需要在应用程序文件夹中创建该文件夹,并将home.html
放在其中。好的,我自己根据您的灵感找到了:)
谢谢你,@Selcuk和@m.arthur。感谢您也为@Mahmoud Ishag.做了贡献:)
答案就在这里,我不应该将此应用程序创建为项目,模板中缺少一个短字符串:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [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': [BASE_DIR / 'templates']
请将我在主帖子中的代码与此进行比较。好吧,我自己根据您的灵感找到了:) 谢谢你,@Selcuk和@m.arthur。感谢您也为@Mahmoud Ishag.做了贡献:) 答案就在这里,我不应该将此应用程序创建为项目,模板中缺少一个短字符串:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [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': [BASE_DIR / 'templates']
请将我的代码从主帖子与此帖子进行比较。发布您的
设置。py
请。Django知道/templates
是您的模板目录吗?默认情况下,Django在以下文件夹层次结构中查找模板:app_name/templates/app_name/template.html。是的,app_名称在templates文件夹中重复,这不是打字错误。如果您没有在settings.py文件中另外指定一个位置,以便它查找模板,则除非您使用此选项,否则它将找不到模板(无可否认,这很尴尬)文件夹结构。好的@Selcuk-您可以查看关于模板的my settings.py部分。@m.arthur-请查看my settings.py:)我应该在哪里指定路径?请发布您的settings.py
。Django知道/templates
是您的模板目录吗?默认情况下,Django在以下文件夹层次结构中查找模板:app_name/templates/app_name/template.html。是的,app_名称在templates文件夹中重复,这不是打字错误。如果您没有在settings.py文件中另外指定一个位置,以便它查找模板,则除非您使用此选项,否则它将找不到模板(无可否认,这很尴尬)文件夹结构。好的@Selcuk-您可以查看关于模板的my settings.py部分。@m.arthur-请查看my settings.py:)我应该在哪里指定路径?我已经这样做了。通过我在主帖子中提供的树,我已经完成了这项工作。通过我在主帖子中提供的树进行方案