在我的DjangoServer的静态文件夹中找到了默认网页的模板。它用一些模板块装饰。
如果我加载此模板文件,则模板的路径会显示在浏览器中,看起来代码未加载。
如果我将模板存储在app / template文件夹中,我会扩展此文件。它工作得很好。我使用Django的教程,但它仍然无法正常工作。
Settings.py
django.contrib.staticfiles被添加到INSTALLED_APPS
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static'),
)
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
projectRootFolder /静态/ HTML / basePage.html
{% load static from staticfiles %}
<!DOCTYPE html>
<html lang="en">
<head>
{% block head %}
<title>{% block title %}My amazing site{% endblock %}</title>
{% endblock %}
</head>
<body>
{% block body %}
<header>
{% block header %}
<header> -- HEADER BANNER --</header>
{% block menu %}<nav></nav>{% endblock %}
{% endblock %}
</header>
<section>
{% block section %} SECTION {% endblock %}
</section>
{% block footer %}
<footer> -- FOOTER --</footer>
{% endblock %}
{% endblock %}
</body>
<script type="text/javascript" src="{% static 'angularjs/SOME_ANGULAR_FILES_LOADED.js' %}"></script>
</html>
来自应用的app / template / app / index.html
{% load static from staticfiles %}
{% static "html/basePage.html" %}
{% block menu %}<nav><a href="/heatingControll">App A</a></nav>{% endblock %}
{% block section %} Lorem Ipsum{% endblock %}
应用/ views.py
from django.template import loader
from django.shortcuts import render
from django.http import HttpResponse
# PAGE CALLS
def index(request):
template = loader.get_template('mainControll/index.html')
context = {}
return HttpResponse(template.render(context, request))
输出
我犯的错误是什么?如何正确加载此模板?
答案 0 :(得分:1)
警告 ,此答案假定您提出问题的目的是让事情发挥作用,而不是帮助您解决可能的权限问题,以便你可能遇到另一个问题。也就是说,我假设您的最终目标不是非HTML文档中的html文档。
看起来您想要将模板包含到另一个模板中,您可以使用{%extends&#34; basePage.html&#34; %}。然后,您的模板需要位于找到模板的位置,而不是找到静态页面的位置。
E.g。如果您的应用被称为“myapp&#39;然后在myapp / templates /下是一个可能的地方,假设TEMPLATES设置有APPDIRS = True
这意味着将index.html更改为
{% extends "basePage.html" %}
{% block menu %}<nav><a href="/heatingControll">App A</a></nav>{% endblock %}
{% block section %} Lorem Ipsum{% endblock %}
请参阅https://tutorial.djangogirls.org/en/template_extending/以及https://docs.djangoproject.com/en/1.11/topics/templates/#configuration,以便配置您的basePage.html