Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我的第一个django应用程序-如何导入模板?_Django_Django Views_Django Templates_Django 3.1 - Fatal编程技术网

我的第一个django应用程序-如何导入模板?

我的第一个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 │  

我正在django 3.1.1中创建我的第一个django应用程序。有老django版本的视频教程,它们并不总是有效。。。我想为主页和“关于”部分创建HTML页面。我已经写了一些HTML文件,但是

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:)我应该在哪里指定路径?我已经这样做了。通过我在主帖子中提供的树,我已经完成了这项工作。通过我在主帖子中提供的树进行方案