我是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
有人可以告诉我这个错误的原因吗?
要修复此错误:
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')
部分。
简单改变
DIRS = [os.path.join(BASE_DIR, 'templates')]
在
settings.py
进入
[BASE_DIR/'templates']
参考:https://docs.djangoproject.com/en/3.2/howto/overriding-templates/
修复错误:
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
这就是我让它发挥作用的方法:
import os
...
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
...
TEMPLATES = [
{
...
'DIRS': [os.path.join(BASE_DIR, 'core/templates')],
...
},]
您只需导入操作系统:
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 = '-----------------------------------------'
在文件顶部添加
import os
,保存并运行程序。