我使用的是virtualenv,我想知道settings.py
中的TEMPLATE_DIRS
应该是什么,例如,如果我在我的项目文件夹的根目录下创建一个模板文件夹。使用virtualenv时,django settings.py中的TEMPLATE_DIRS的路径是什么
回答
您需要指定模板文件夹的绝对路径。始终使用正斜杠,即使在Windows上也是如此。
例如,如果你的项目文件夹是 “/家/ djangouser /项目/ MyProject的”(Linux)或 'C:\项目\ MyProject的\'(Windows)中,你的TEMPLATE_DIRS是这样的:
# for Linux
TEMPLATE_DIRS = (
'/home/djangouser/projects/myproject/templates/',
)
# or for Windows; use forward slashes!
TEMPLATE_DIRS = (
'C:/projects/myproject/templates/',
)
或者,您可以使用指定的PROJECT_ROOT变量,并通过将其与模板文件夹的相对路径进行连接来生成绝对路径。这具有如下优点:如果将项目复制到其他位置,则只需更改PROJECT_ROOT。您需要导入os模块,使其工作:
# add at the beginning of settings.py
import os
# ...
TEMPLATE_DIRS = (
os.path.join(PROJECT_ROOT, 'templates/'),
)
的PROJECT_DIR尚未确定...的PROJECT_DIR不是一个变量。其目录/文件夹“模板”所在的路径。这应该有帮助
import os
PROJECT_DIR = os.path.dirname(os.path.dirname(__file__))
TEMPLATE_DIRS = os.path.join(PROJECT_DIR, 'templates')
如果您使用的是Django 1.9,建议使用BASE_DIR而不是PROJECT_DIR。
# add at the beginning of settings.py
import os
# ...
TEMPLATE_DIRS = (
os.path.join(BASE_DIR, 'templates/'),
)
如果你使用Django较新版本的工作,你可能需要将其添加到DIR列表里面settings.py下模板。
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': ['[project name]/templates'], # Replace with your project name
'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',
],
},
},
]
在web/settings.py中添加它解决了我的一切。希望它也能帮助你。
import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
from os.path import join
TEMPLATE_DIRS = (
join(BASE_DIR, 'templates'),
)
这与已发布的答案有什么不同?你所做的只是将'join'绑定为全局的,而不是使用完整的'os.path.join()'拼写。 – 2017-02-25 13:44:18
当我使用已发布的答案。我可以得到一个错误,说没有找到BASE_DIR – ninyesiga 2017-02-27 07:43:15
'BASE_DIR'只是一个名字(尽管它看起来像Django 1.9中的项目模板,并且现在定义了名称,请参阅https://github.com/django/django/blob /master/django/conf/project_template/project_name/settings.py-tpl)。 [使用virtualenv时,django settings.py中TEMPLATE \ _DIRS的路径是什么](// stackoverflow.com/a/24706023)使用名称'PROJECT_DIR'来确保相同的值。 – 2017-02-27 07:46:24
- 1. django中settings.py的相对路径
- 2. 我使用pyspark的路径是什么?
- 3. 在settings.py中模板文件夹不正确的Django路径
- 4. 在Android中,什么时候使用Uri,什么时候使用路径,何时在路径之前添加`file://?
- 5. 什么是vscode中的参考路径
- 6. 在Django的settings.py
- 7. 什么是Android更新项目中的路径 - 路径命令
- 8. Django:其中是settings.py寻找进口,为什么?
- 9. Python virtualenv:为什么pip仍然在非$ path路径中查找?
- 10. 什么是Scene#getStylesheets()中相对路径的路径起源?
- 11. @“../ ..”在路径中的含义是什么?
- 12. 什么是图中的最小路径?
- 13. 模板目录的路径在settings.py中不起作用
- 14. 什么是Java2D中的路径和子路径?
- 15. 什么是Assertion.AssertEquals的“升级路径”?
- 16. 文档光标的路径是什么?
- 17. Django:在settings.py中的get_language
- 18. 默认的Android SDK路径是什么?
- 19. virtualenv使用错误的django
- 20. 什么是类路径?
- 21. Virtualenv下的结构:如何获取系统的Python库路径(不是virtualenv Python的库路径)
- 22. JRE内的JVM的路径是什么?
- 23. Git .ssh的默认路径是什么?
- 24. Django:在settings.py中使用DATE_FORMAT,DATETIME_FORMAT,TIME_FORMAT?
- 25. virtualenv找不到路径
- 26. 在文件路径中输入时,%的含义是什么?
- 27. Django Developments Template_DIRS设置失败
- 28. 我的命令路径是什么?
- 29. 什么决定了InstanceDir是全路径还是相对路径?
- 30. Python - 使用在virtualenv中安装的Django
感谢您的回答。它的说法PROJECT_ROOT没有为第二个答案定义。 – weaveoftheride 2012-08-14 17:25:43
我的项目文件夹位于/ Users/andrewwelch/Sites/env /,我想我必须改变这个,如果我把它放到远程服务器上 – weaveoftheride 2012-08-14 17:27:15
是的,是我的错。我注意到PROJECT_ROOT不是一个标准变量,并且被我添加到settings.py中,我抬头看。它基本上像这里的建议一样:http://stackoverflow.com/questions/4919600/django-project-root-self-discovorey – eminor 2012-08-14 18:20:14