模板目录路径

问题描述 投票:0回答:6

我是Python新手。我正在使用 python 2.7.1 和 django 1.5.1。

当我输入此代码时:

TEMPLATE_DIRS = [os.path.join(BASE_DIR, 'templates')]

在我的

settings.py
中,终端显示以下错误:

File "/home/pipo/Desktop/mysite/mysite/settings.py", line 116, in <module>
    [os.path.join(BASE_DIR, 'templates')]
NameError: name 'os' is not defined

有人可以告诉我这个错误的原因吗?

python-2.7 django-1.5
6个回答
12
投票

要修复此错误:

File "/home/myUser/path/to/project/projectName/projectName/settings.py", line 116, in <module>
  os.path.join(BASE_DIR, 'templates')
NameError: name 'os' is not defined

我必须在

settings.py
的开头添加这一行:

import os

然后我收到此错误:

File "/home/myUser/path/to/project/projectName/projectName/settings.py", line 116, in <module>
  os.path.join(BASE_DIR, 'templates')
NameError: name 'BASE_DIR' is not defined

为了解决这个问题,我将此行添加到

settings.py
:

BASE_DIR = os.path.dirname(os.path.abspath(__file__))

这将返回当前文件路径。您可能需要相应地更改

os.path.join(BASE_DIR, 'templates')
部分。


1
投票

简单改变

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

settings.py
进入

[BASE_DIR/'templates']

参考:https://docs.djangoproject.com/en/3.2/howto/overriding-templates/


0
投票

修复错误:

File "C:\Users\shahi\telusko_projects\telusko\telusko\settings.py", line 57, in <module>
  'DIRS': [os.path.join(BASE_DIR,'templates')],
NameError: name 'os' is not defined

只需在

settings.py
的顶部添加这一行:

from pathlib import Path,os

0
投票

这就是我让它发挥作用的方法:

import os
...
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
...
TEMPLATES = [
{
    ...
    'DIRS': [os.path.join(BASE_DIR, 'core/templates')],
    ...
},]

0
投票

您只需导入操作系统:

import os

# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))


# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/3.0/howto/deployment/checklist/

# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = '-----------------------------------------'

0
投票

在文件顶部添加

import os
,保存并运行程序。

© www.soinside.com 2019 - 2024. All rights reserved.