gpt4 book ai didi

python - 在 block 外或 block 内编写脚本标签?

转载 作者:太空宇宙 更新时间:2023-11-04 11:14:04 25 4
gpt4 key购买 nike

请考虑以下代码。

<!--templates/home.html-->
{% extends 'base.html' %}
{% load static %}

{% block content %}
{% for post in object_list %}
<div class = 'post-entry'>
<h2><a href="{% url 'post_detail' post.pk %}">{{ post.title }}</h2>
<p>{{ post.body }}</p>
</div>
{% endfor %}
<script type = "text/javascript" src = "{% static 'js/test.js' %}"></script>
{% endblock content %}

<!--templates/home.html-->
{% extends 'base.html' %}
{% load static %}

{% block content %}
{% for post in object_list %}
<div class = 'post-entry'>
<h2><a href="{% url 'post_detail' post.pk %}">{{ post.title }}</h2>
<p>{{ post.body }}</p>
</div>
{% endfor %}
{% endblock content %}
<script type = "text/javascript" src = "{% static 'js/test.js' %}"></script>

第一个执行成功,但第二个执行失败。是否需要从 django 模板 block 内部加载外部静态文件,如果不需要,那么为什么第二个代码不执行?

PS:我是 django 的新手。

为了清楚起见,我还在此处提供了基本模板的代码。

<!--templates/base.html-->
{% load static %}
<html>
<head><title>Django Blog</title>
<link href = "{% static 'css/base.css' %}" rel = "stylesheet">
</head>
<body>
<header><h1><a href = "{% url 'home' %}">Django Blog</a></h1></header>
<div>
{% block content %}
{% endblock content %}
</div>
</body>
</html>

最佳答案

The first one executes successfully but the second one does not. Is it necessary to load an external static file from inside a django template block and if not then why does the second code not execute?

如果您覆盖一个基本模板,可以说您只能“填充 block ”。 Django 应该在哪里写你在 block 外写的东西?在文件的开头?在文件末尾?介于两者之间?

documentation on template inheritance [Django-doc] 中所述:

The most powerful – and thus the most complex – part of Django’s template engine is template inheritance. Template inheritance allows you to build a base “skeleton” template that contains all the common elements of your site and defines blocks that child templates can override.

但是您可以定义多个 block 。例如,通常在末尾添加一个 block ,您可以选择在其中添加一些额外的 JavaScript,例如:

<!--templates/base.html-->
{% load static %}
<html>
<head><title>Django Blog</title>
<link href="{% static 'css/base.css' %}" rel="stylesheet">
</head>
<body>
<header><h1><a href="{% url 'home' %}">Django Blog</a></h1></header>
<div>
{% block content %}
{% endblock content %}
</div>
<b>{% block js %}
{% endblock %}</b>
</body>
</html>

然后你可以写<script ...>页面底部的部分,例如:

{% extends 'base.html' %}
{% load static %}

{% block content %}
{% for post in object_list %}
<div class='post-entry'>
<h2><a href="{% url 'post_detail' post.pk %}">{{ post.title }}</h2>
<p>{{ post.body }}</p>
</div>
{% endfor %}
{% endblock %}

{% <b>block js</b> %}
<script type="text/javascript" src="{% static 'js/test.js' %}"></script>
{% endblock %}

您当然可以在{% block ...%} ... %{ endblock %} 之外定义变量等。部分。但是,如果您从基本模板继承,则在外部呈现的所有内容都会被忽略。

关于python - 在 block 外或 block 内编写脚本标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57444263/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com