Django项目基本模板(Django project base template)

2019-07-19 08:05发布

我可以为我的项目,所有的应用程序可以借鉴基本模板? 还是我必须要为每个应用创建一个基本模板? 如果我想他们是一样的我只是将它们复制?

Answer 1:

你当然可以。 一个base.html文件的一个简单的例子

<!DOCTYPE html>
<html>
    <head>
        <title>My Project</title>
    </head>

    <body>
    {% block content %}{% endblock content %}
    </body>
</html>

说你有一个名为MYAPP与view.html网页应用程序,

{% extends "base.html" %}

{% block content %}
    <h2>Content for My App</h2>
    <p>Stuff etc etc.</p>
{% endblock content %}

花一些时间来阅读文档以了解更多信息



Answer 2:

是的,你完全可以做到这一点。 通过使用extendsinclude在你的Django模板模板标签。

我开始学习Django和最近想通了这一点。 我的代码是在Github上 ,如果你有兴趣考虑看看我是如何构建Django模板从继承base.html ,然后include常见的东西,如导航栏和页眉,页脚等。



Answer 3:

有一个在最后回答一些问题,在这里是正确的; 你必须有base.html文件是这样的:

{% load staticfiles %}

<!DOCTYPE html>
<html>
<head>
    <title>My Project</title>
</head>
<body>
{% block content %}{% endblock %}
</body>
</html>

也为index.html的

{% extend "appname/base.html" %}
{% block content %}
     <h1>test</h1>
{% endblock %}


Answer 4:

是的,你可以为你的项目,该项目的其他应用程序将延长一个基本模板。 检查如何@Kenny_Shen答案。

只是想补充两个音符,如果你担心的应用程序隔离。

  1. 如果你不想让你的应用程序依靠“base.html文件”命名约定,你可以用一个变量注入实际名称,看一看: 如何使用Django的模板扩展变量? 有关详细信息,

  2. 你可能想命名的应用程序模板块到别的东西,而不是“内容”,以避免与其他应用程序冲突。



文章来源: Django project base template