在django中,文档要求使用绝对路径而不是相对路径。
然后,他们如何管理可移植性?
如果我在项目文件夹中有我的模板,那么即使重命名该文件夹也会导致破损..!
那么这种做法背后的原因是什么?
请解释一下?
答案 0 :(得分:1)
您可以发布该文档的链接吗?
在Django中,您可以在settings.py中配置模板的搜索路径(通过TEMPLATE_DIRS变量)。然后,在视图中,您渲染一个模板,该模板相对于TEMPLATE_DIRS中包含的路径之一命名其文件。这样,无论何时移动模板目录,您只需修改settings.py
即可对于静态文件,如CSS文档,Django不需要了解它们(除非你通过django本身提供静态文件,django的文档不鼓励):你只需要告诉你的web服务器在哪里找到他们。
答案 1 :(得分:0)
我将环境从Linux桌面切换到Windows笔记本电脑,因此硬编码路径对我来说也不起作用。
可能有更好的方法可以做到这一点,但是我写了这个函数,它位于我的settings.py的顶部,以从项目中的相对路径获取绝对路径:
#settings.py
import os
def map_path(directory_name):
return os.path.join(os.path.dirname(__file__), \
directory_name).replace('\\', '/')
这让我可以这样做:
MEDIA_ROOT = map_path('static')
TEMPLATE_DIRS = (
map_path('templates'),
)
“static”和“templates”存在于我的项目根目录下。希望能帮到你。