为了账号安全,请及时绑定邮箱和手机立即绑定

Django 'DIRS':settings.py TEMPLATES 中的 [] 导致

Django 'DIRS':settings.py TEMPLATES 中的 [] 导致

qq_遁去的一_1 2021-07-29 17:54:24
我在 python 3.6 中使用 django 2.1.2 版。我通过 CMD 创建了两个 django 项目(test01 和 test02)。这两个项目都在同一个文件夹下。Test01 正常执行,而 test02 引发 TemplateDoesNotExist 错误。我找到了后者的解决方案,即在 settings.py 中硬编码模板的地址:'目录':[r'C:\django\test02\accounts\templates']但是,即使将此列表保留为空白 [],另一个项目也可以正常运行。两个项目的结构是一样的:任何人都可以提出一个建议来解决 test02 中的问题,而无需对 test02 中的模板地址进行硬编码?
查看完整描述

2 回答

?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

您可能会注意到一个名为 的内置 Django 变量BASE_DIR,它代表您的根项目,因此您无需对绝对路径进行硬编码。


在设置中添加这个


TEMPLATES = [

    {

        'BACKEND': 'django.template.backends.django.DjangoTemplates',

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

        'APP_DIRS': True,

        'OPTIONS': {

            'context_processors': [

                # codes...

            ],

        },

    },

]

注册你所有的应用程序,Django 会在templates你提到的文件夹中查找任何文件os.path.join(BASE_DIR, 'templates')


查看完整回答
反对 回复 2021-08-03
?
慕标5832272

TA贡献1966条经验 获得超4个赞

让我们在模板中创建一个名为“test01App”的文件夹并在其上创建 base.html。然后你可以调用'test01App/base.html'作为响应。

BACKEND 是 django 的默认值,您必须创建文件夹“模板”。您可以自定义在 DIRS 中其他位置存储模板的位置。


TEMPLATES = [

{

    'BACKEND': 'django.template.backends.django.DjangoTemplates',

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

    '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',

        ],

    },

},

]


查看完整回答
反对 回复 2021-08-03
  • 2 回答
  • 0 关注
  • 203 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信