Django模板文件夹
我正在尝试使用Django,并弄清楚如何设置urls.py以及URL如何工作。我已经在项目的根目录中配置了urls.py,以定向到我的博客和管理员。但是,现在我想在首页添加一个页面,所以在localhost:8000
。
因此,我在项目根目录的urls.py中添加了以下代码:
from django.views.generic.simple import direct_to_templateurlpatterns = patterns('',
(r"^$", direct_to_template, {"template": "base.html"}),
)
问题是它在blog / templates / …中搜索模板, 而不是在我的根目录中搜索template文件夹。其中包含base.html。
完整的urls.py:
from django.conf.urls import patterns, include, urlfrom django.views.generic.simple import direct_to_template
# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
(r"^$", direct_to_template, {"template": "base.html"}),
url(r'^blog/', include('hellodjango.blog.urls')),
url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
url(r'^admin/', include(admin.site.urls)),
(r'^tinymce/', include('tinymce.urls')),
)
回答:
你设置好TEMPLATE_DIRS
了settings.py
吗?检查并确保使用绝对路径正确设置了它。这是我确保正确设置的方式:
settings.pyPROJECT_ROOT = os.path.abspath(os.path.dirname(__file__))
TEMPLATE_DIRS = (
# Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
os.path.join(PROJECT_ROOT, 'templates').replace('\\','/'),
)
# List of callables that know how to import templates from various sources.
TEMPLATE_LOADERS = (
'django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader',
# 'django.template.loaders.eggs.Loader',
)
这样,我templates
在项目根目录中有一个用于非应用程序模板的templates/appname
文件夹,每个应用程序内部都有一个文件夹。
如果要使用根模板文件夹中的模板'base.html'
,则只需输入模板名称,例如,如果要使用应用程序模板,则使用'appname/base.html'
资料夹结构:
project/ appname/
templates/
appname/ <-- another folder with app name so 'appname/base.html' is from here
base.html
views.py
...
templates/ <-- root template folder so 'base.html' is from here
base.html
settings.py
views.py
...
以上是 Django模板文件夹 的全部内容, 来源链接: utcz.com/qa/407670.html