Django HTML依赖

zpjtge22  于 2023-08-08  发布在  Go
关注(0)|答案(1)|浏览(98)

我是Django的新手,我正在尝试加载bootstrap5和js到我的项目。为了实现这一点,我在templates下创建了一个'base.html',并在我的另一个html文件中扩展它。举例来说:

{% extends 'base.html' %}
{% block content %}
<div class="mt-4"> 
  <h2>Log In</h2>
  <form method="post"> {% csrf_token %}
    {{ form.as_p }}
    <button type="submit">Log In</button>
  </form>
</div>
{% endblock %}

字符串
这个方法是可行的,但我认为如果我在所有的html文件中包含这些标签,它可能会使维护变得更困难,所以有可能删除这些标签,并且依赖项仍然有效吗?

{% extends 'base.html' %}
{% block content %}
...
{% endblock %}


我已经尝试使用document_processors来加载CDN,我可以确认这个方法被执行,但是如果我删除标签,样式仍然没有加载。

# document.processor.py
def base_template_variables(request):
    return {
        'title': 'Default Title',
        'bootstrap_css_cdn': 'https://cdn.jsdelivr.net/npm/bootstrap@5.3.1/dist/css/bootstrap.min.css',
        'bootstrap_js_cdn': 'https://cdn.jsdelivr.net/npm/bootstrap@5.3.1/dist/js/bootstrap.bundle.min.js',
    }

mqkwyuun

mqkwyuun1#

最后,它将只是一个HTML文件。这些标签使django开发人员更容易使用html文件,并编写更少的代码,与普通html文件相同,因此这些标签是Django中模板继承所必需的。{% extends 'base.html' %}标签告诉Django这个模板是从base.html扩展而来的,而{% block content %}...{% endblock %}标签定义了一个可以在子模板中覆盖的内容块。如果删除这些标记,模板继承将无法工作,并且您将无法使用基本模板来包含跨多个模板的公共元素,例如样式表和脚本。

相关问题