Django:包含外部包含文件

时间:2011-09-07 12:24:12

标签: django django-templates

我正在构建一个Web应用程序,它将成为现有静态网站的一部分。我更喜欢使用当前站点的页眉和页脚,它们是静态的.inc包含文件。

有没有办法将这些文件包括在内:

{%include'http://www.mysote.com/inc/footer.inc'%}

1 个答案:

答案 0 :(得分:2)

在Django中没有内置的方法可以做到这一点,但是你可以自己编写一个非常简单的模板标签(有人已经写过这样的东西了,尽管快速搜索没有不要为我转过身来。如果你想走那条路,你可以快速simple_tag(在此处记录:https://docs.djangoproject.com/en/1.3/howto/custom-template-tags/#shortcut-for-simple-tags)。它可能就像这样简单:

def include_external(url):
    import urllib2
    return urllib2.urlopen(url).read()

register.simple_tag(include_external)


{% include_external 'http://....' %}

然而,正如Umang所提到的,这可能存在问题 - 获取包含文件可能会显着增加您的页面加载时间,并且您将保证静态站点中的故障也会降低您的Django应用程序。如果这些事情中的任何一个都成为一个问题,你可以考虑缓存标题 - 然而,这会增加额外的复杂性,你可能更好的只是在每次更新时复制你的头文件。