在settings.py中模板文件夹不正确的Django路径
我刚学习Django并且正在关注学习Django 1.11教程。在settings.py中模板文件夹不正确的Django路径
这里是我当前的项目树:
├── manage.py
├── muypicky
│ ├── __init__.py
│ ├── old_settings.py
│ ├── settings
│ │ ├── base.py # Contains the settings (like shown in the tutorial)
│ │ ├── __init__.py
│ ├── urls.py
│ └── wsgi.py
├── requirements.txt
├── restaurants
└── templates # Templates Folder
└── index.html
我想要的路径添加到在设置文件夹中的文件夹tempelates。但显示的错误
django.template.loaders.filesystem.Loader:.../muypicky /模板/ index.html的(源不存在)
当前setting.py文件
TEMPLATES = [{
'DIRS': [os.path.join(BASE_DIR, 'templates')],
},]
看着这个错误,文件路径是错误的,因为它进入/ muypicky/tempelates这是不正确的。那么如何才能到达根文件夹,然后到setting.py(base.py)中给定文件树的tempelates文件夹。
任何进一步的疑问,只是问和许多感谢预期。
settings.py
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
MEDIA_ROOT = os.path.join(BASE_DIR, 'uploads')
MEDIA_URL = '/uploads/'
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [MEDIA_ROOT + '/'],#other app templates
'APP_DIRS': True,#heremention yourapp/templates
'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',
'django.template.context_processors.media'
],
},
},
]
也可以看看文件djano template
解决方案:
BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
和
TEMPLATES = [{'DIRS': [
os.path.join(BASE_DIR, 'templates')
],},]
添加os.path.dirname()
已被封装以返回一个文件夹
很酷我看了教程,他确实说你需要调整BASE_DIR,但我同意它不是很清楚,因为你永远不会看到全线 –
Ye,a很多时候,他说他会在稍后解释它,但通常不会,它会变得混乱。 – WebGuy
唯一的问题是base.py中的模板文件夹的路径(它正在替换settings.py)。当我将确切的地址放在像“home/user/desktop/venv/src/templates”这样的模板文件夹中时,它工作正常。因此,唯一的问题是“os.path.join(BASE_DIR,'templates')”在muypicky文件夹内查找模板文件夹,当它应该返回目录时。 – WebGuy
我的猜测是,由于您使用的是设置文件夹,因此您需要调整'BASE_DIR'以再上一个文件夹。 –
是的,这是正确的,但我不知道如何修改BASE_DIR“BASE_DIR = os.path.dirname(os.path.dirname(__ file__))”。我尝试了不同的想法,但没有工作:( – WebGuy