Django Developments Template_DIRS设置失败

时间:2017-06-15 16:13:37

标签: python django templates

我最近正在尝试为我的一个私人项目学习Django。 当进入模板章节时,Django Book建议使用以下代码段在settings.py中设置模板路径

TEMPLATES = [
{
    'BACKEND': 'django.template.backends.django.DjangoTemplates',
    'DIRS': [os.path.join(os.path.dirname(__file__), 'templates').replace('\\','/'),],
    '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',
        ],
    },
},

然而,当我打开文件setting.py时,我发现没有像“TEMPLATE_DIR”那样的列表:

def current_datetime(request):
  now = datetime.datetime.now()
  t = get_template("current_datetime.html")
  html = t.render(Context({"current_date" : now}))
  return HttpResponse(html)

与键“DIR”相关的值是一个空列表。所以我尝试用上面显示的内容填充它。

然后,在views.py中编写代码(完成所有导入)

each image in imageArray
  img(src=image, alt="")

然后使用setting.py在同一文件夹中的mkdir模板,将current_datetime.html保存在文件夹模板中

最后,运行项目。并在终端中收到消息:

  

警告:   ?:( 1_8.W001)在Django 1.8>中不推荐使用独立的TEMPLATE_ *设置。并且TEMPLATES字典优先。您必须输入>的值将设置设置为默认的TEMPLATES dict:TEMPLATE_DIRS。

     

系统检查确定1个问题(0静音)。   2017年6月15日 - 15:32:49   Django版本1.11.2,使用设置'mysite.settings'   在127.0.0.1:8000/启动开发服务器   使用CONTROL-C退出服务器。

在我的Safari中打开地址(127.0.0.1:8000/time/)时,就出现了 错误讯息:

enter image description here

有人帮忙吗?

2 个答案:

答案 0 :(得分:0)

TEMPLATE_DIRS上有一个警告,因为请确保您的settings.py中没有TEMPLATE_DIRS变量并重新启动开发服务器。

然后,对于错误,您实际上使用的是Context对象而不是dict,您应该使用有用的快捷方式https://docs.djangoproject.com/en/1.11/topics/http/shortcuts/#example

呈现模板
from django.shortcuts import render

def current_datetime(request):
  now = datetime.datetime.now()
  return render(request, "current_datetime.html", {
    'current_date' : now,
  })

答案 1 :(得分:0)

我认为你在settings.py中有BASE_DIR用于定义位置,所以请使用如下

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应如下所示

'DIRS': [os.path.join(BASE_DIR, 'templates'),],