更改管理模板-Django教程2
这个问题或多或少得到了回答,但对我来说不起作用,据我所知,有更多的人有同样的问题 在my settings.py中,我有以下几行:更改管理模板-Django教程2,django,templates,Django,Templates,这个问题或多或少得到了回答,但对我来说不起作用,据我所知,有更多的人有同样的问题 在my settings.py中,我有以下几行: #TEMPLATE_DIRS = [os.path.join(BASE_DIR,'..', 'templates'),] TEMPLATE_DIRS = ("/root/GODJANGO/thedjango/django_project",) 这句话不管用。如果我写完整的路径,它是有效的,但它不是专业的,我不想在三个月后迁移服务器时出现问题,因为我不会记住这件
#TEMPLATE_DIRS = [os.path.join(BASE_DIR,'..', 'templates'),]
TEMPLATE_DIRS = ("/root/GODJANGO/thedjango/django_project",)
这句话不管用。如果我写完整的路径,它是有效的,但它不是专业的,我不想在三个月后迁移服务器时出现问题,因为我不会记住这件事
考虑到问题的第二部分,根据模板最安全的部分是在项目主目录下创建一个
templates
dir(例如blog
)
至于第一部分,我不确定。如果您有以下项目布局:
manage.py
myproject/
settings.py
urls.py
wsgi.py
templates/
admin/
app1/
app2/
然后,您可以通过将以下内容放入设置.py
,动态设置模板目录:
...
SETTINGS_PATH = os.path.abspath(os.path.dirname(__file__))
TEMPLATE_DIRS = (
os.path.join(SETTINGS_PATH, "templates")
)
...
如果您的模板文件夹位于settings.py
的父文件夹中,则需要以下内容:
...
SETTINGS_PATH = os.path.abspath(os.path.dirname(__file__))
PROJECT_FOLDER = (os.path.split(SETTINGS_PATH))[0] # get the parent directory
TEMPLATE_DIRS = (
os.path.join(PROJECT_FOLDER, "templates")
)
...
如您所见,我们正在手动遍历文件树以查找templates文件夹的位置,并动态分配它
templates文件夹的最佳位置取决于项目布局(<1.4或>=1.4),但最安全的做法可能是将其放在
settings.py
文件旁边。管理员模板文件夹将进入基本模板文件夹:templates/admin/
你想对评论行中的这个参数“.”做什么
如果它表示父目录,则可以使用os.path.dirname(BASE\u DIR)
第二部分:
这取决于你或你的团队合作;我喜欢将templates目录保存在每个应用程序的目录中(如果您这样做,则无需定义TEMPLATE\u DIRS
)。我的意思是,如果我有新闻应用程序的模板,它们就会变成。/news/templates/
。但是这次我的朋友(前端开发人员)说我找不到它们,我们能把它们放在一个地方吗?
所以我把它们放在一个带有子目录的目录中(
。/templates/news/
)。此主模板目录位于主项目目录中(靠近manage.py文件)。如果您将此主目录添加到已安装的应用程序
(因为它是一种应用程序),您也不需要定义模板目录
。甚至你也可以在这里创建models.py admin.py文件。它显示了什么:“print[os.path.join(BASE_DIR,…,,,,,,,]”?我试了几次:print[os.path.join(BASE_DIR,…,,,,,,,]-bash:意外标记附近的语法错误`(“你为什么要更改模板目录?默认值是BASE\u DIR/templates,这对教程来说应该很好。行了!谢谢!我想投票支持你的答案,但我没有足够的声誉这么做,所以如果你投票支持我的问题,我将非常感谢你投赞成票。“谢谢”(;如果它有效,你可以通过点击向上投票按钮旁边的勾号来接受它作为正确答案。如果你告诉我它是在哪一分钟说的,我将不胜感激,谢谢!@BugFixer我刚刚看到了评论,对延迟表示歉意,但是由于我也不是很有经验,我建议观看整个教程。项目结构有时会令人痛苦。感谢您的解释,事实上我是Django的最新用户,所以我现在只关注官方教程,我想做正确的事情,并确定我采取的方式。问候!