Html 将模板导入Django中的基础模板

Html 将模板导入Django中的基础模板,html,django,Html,Django,我希望能够显示base.html,其中包含我的gallery.html。我用开发者工具检查了源代码,在http://localhost:8000/gallery/ 注: 我的gallery应用程序中当前没有url.py。我的项目目录中只有一个url.py 项目的URL.py: from django.conf.urls import patterns, include, url from home.views import loadHomepage from gallery.views impo

我希望能够显示
base.html
,其中包含我的
gallery.html
。我用开发者工具检查了源代码,在
http://localhost:8000/gallery/

注:

我的gallery应用程序中当前没有
url.py
。我的项目目录中只有一个url.py

项目的URL.py:

from django.conf.urls import patterns, include, url
from home.views import loadHomepage
from gallery.views import loadGallery
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',

    url(r'^admin/', include(admin.site.urls)),
    url(r'', 'home.views.loadHomepage'),
    url(r'gallery/$', 'home.views.loadGallery'),
)
gallery app views.py:

from django.shortcuts import render_to_response

def loadGallery(request):
    return render_to_response('gallery.html')
项目结构

/proj
   /gallery
      /static
         /css
            gallery.css
      /templates
         gallery.html
   /proj
   /templates
      base.html
   /static
      /css
         base.css
base.html:

{% load staticfiles %}

  <body>
    <div class="container">
      <div class="home-button">
      </div>
      <div class="sidebar">
      </div>
      <div class="content-container">
        {% block content %}

        {% endblock %}
      </div>

    </div>

    <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
    <!-- Include all compiled plugins (below), or include individual files as needed -->
    <script src="http://netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script>
  </body>

您需要在所有模板中
{%load staticfiles%}
,无论您是否从base.html继承(假设您在模板中使用静态文件)

您的url.py也应该类似于:

from django.conf.urls import patterns
from django.views.generic import TemplateView

urlpatterns = patterns('',
    (r'^gallery/', TemplateView.as_view(template_name=gallery.html")),
)

我认为根本没有调用loadGallery视图。loadHomepage的前一个URL在正则表达式中没有任何开始/结束锚,因此它将捕获所有URL。Django的URL解析程序将简单地将所有内容路由到那里,而不会转到“gallery”URL

你应该做如下的事情:

url(r'^$', 'home.views.loadHomepage'),
url(r'^gallery/$', 'home.views.loadGallery'),

在这一点上,您将遇到gallery模板中的错误,例如,
扩展
标记的参数需要在引号中。

问题在哪里?为什么要这样拆分模板?gallery是我的
应用程序
,我认为这是为我组织的。此模板中有几个错误,因此,没有看到异常的事实表明,实际上根本没有渲染它。您应该发布您的URL和视图。@DanielRoseman jsut这样做了!谢谢你的建议!那么将
{%extends base.html%}
{%load staticfiles%}
添加到my gallery.html?是的……但我真的不明白为什么要加载这样的样式表。您可能应该在基本模板中为
meta
links
创建另一个
block
,并使用
block.super
将您的库样式表包含在该模板中。我是django的新手,所以有点困惑。你能提供一些例子吗?你更新了你的URL.py来显示模板了吗?我需要这样做吗?目前在我的项目my urls.py中,它包括
url(r'gallery/$,'home.views.loadGallery'),
其中
loadGallery
是一个简单的
返回render\u to\u响应('gallery.html')
我修复了库模板报价问题,谢谢!然而,现在我得到了
ViewDoesNotExist
错误。这是回溯,如果你感兴趣的话,那么视图是在home.views还是gallery.views?似乎应该是后者。我在
主页
应用程序中创建了一个视图来生成
^$
页面。“我的画廊”应用程序中还有另一个视图也做了同样的事情。两个render\u to\u响应都是的,因此您需要将URL指向正确的URL。我认为这个问题是因为当我转到
/gallery/
时,render\u to\u响应('gallery.html')只生成gallery.html。但是my gallery.html扩展了
base.html
(主视图)。所以我不明白为什么它甚至需要运行主视图。
from django.conf.urls import patterns
from django.views.generic import TemplateView

urlpatterns = patterns('',
    (r'^gallery/', TemplateView.as_view(template_name=gallery.html")),
)
url(r'^$', 'home.views.loadHomepage'),
url(r'^gallery/$', 'home.views.loadGallery'),