Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.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
Python 在Django中,如何在settings.py上包含我用名为base.html的基本文件创建的模板文件夹?_Python_Django_Python 2.7 - Fatal编程技术网

Python 在Django中,如何在settings.py上包含我用名为base.html的基本文件创建的模板文件夹?

Python 在Django中,如何在settings.py上包含我用名为base.html的基本文件创建的模板文件夹?,python,django,python-2.7,Python,Django,Python 2.7,我已经学习Django一周了,但我不确定如何在settings.py文件中包含我用名为base.html的基本文件创建的模板文件夹。 为了做到这一点,我在代码末尾更改了settings.py文件,如下所示 TEMPLATE_DIRS = ( BASE_DIR + '/templates/' ) TEMPLATE_LOADERS = ( 'django.template.loaders.filesystem.Loader', 'django.template.loader

我已经学习Django一周了,但我不确定如何在settings.py文件中包含我用名为base.html的基本文件创建的模板文件夹。 为了做到这一点,我在代码末尾更改了settings.py文件,如下所示

TEMPLATE_DIRS = (
    BASE_DIR + '/templates/'
)
TEMPLATE_LOADERS = (
    'django.template.loaders.filesystem.Loader', 
    'django.template.loaders.app_directories.Loader',
)
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',
        ],
    },
},]
在settings.py文件中,已经存在如下所示的模板

TEMPLATE_DIRS = (
    BASE_DIR + '/templates/'
)
TEMPLATE_LOADERS = (
    'django.template.loaders.filesystem.Loader', 
    'django.template.loaders.app_directories.Loader',
)
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',
        ],
    },
},]
当我运行python manage.py runserver时,会发生异常

Traceback (most recent call last):
  File "manage.py", line 22, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/lib/python2.7/dist-packages/django/core/management/__init__.py", line 354, in execute_from_command_line
    utility.execute()
...
File "/usr/lib/python2.7/dist-packages/django/conf/__init__.py", line 108, in __init__
    "Please fix your settings." % setting)
django.core.exceptions.ImproperlyConfigured: The TEMPLATE_DIRS setting must be a tuple. Please fix your settings.
回溯(最近一次呼叫最后一次):
文件“manage.py”,第22行,在
从命令行(sys.argv)执行命令
文件“/usr/lib/python2.7/dist packages/django/core/management/_init__uuuuuuu.py”,第354行,从命令行执行
utility.execute()
...
文件“/usr/lib/python2.7/dist packages/django/conf/_init__.py”,第108行,在_init中__
“请修复您的设置。”%setting)
django.core.exceptions.ImpropertlyConfigured:模板\u DIRS设置必须是元组。请修复您的设置。
我认为模板包括模板目录模板加载程序。但我不确定。
如何处理它?

文档建议将模板目录放在模板目录中

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',
        ],
    },
},]
您还应该使用
os.path.join(BASE\u DIR,'templates')
来获取模板路径


谢谢你的帮助。我使用1.8.7版本。我已经看到上面的版本是1.11。当我使用django 1.8.7版本时,上面的代码是否运行良好?1.8文档表明这是正确的,并且1.8版本中似乎引入了更改,谢谢。模板加载器呢?事实上,我不明白TEMPLATE_LOADER是什么意思。它们是决定Django如何搜索模板文件的类,例如,如果你在DIRS中指定一个路径,它将首先在那里检查,然后在apps templates目录中检查。你能告诉我TEMPLATE_LOADER在哪里吗,模板内还是模板外?