如何从Django后端添加自定义(或动态)Javascript?

如何从Django后端添加自定义(或动态)Javascript?,javascript,html,django,Javascript,Html,Django,我希望每次都按照后端的逻辑添加自定义JavaScript 例如: --views.py-- --html.html-- {{js_script}} 但这并不能正常工作,每次在html源代码中的不同位置都会添加一个奇怪的“并没有完成工作”。如果您有工作要做,请提供帮助。刚刚尝试了一些东西,效果很好 资料来源: 在上下文中,您做得很对示例: context = { 'js_var': 'console.log("JavaScript which i want to ad

我希望每次都按照后端的逻辑添加自定义JavaScript

例如:

--views.py--


--html.html--


{{js_script}}


但这并不能正常工作,每次在html源代码中的不同位置都会添加一个奇怪的“并没有完成工作”。如果您有工作要做,请提供帮助。

刚刚尝试了一些东西,效果很好

资料来源:

在上下文中,您做得很对示例:

context = {
    'js_var': 'console.log("JavaScript which i want to add")',
}
在模板中,添加模板标记“safe”,它将删除“"”:

祝你有愉快的一天


告诉我这对你有用吗

我认为您希望为特定页面本地加载自定义javascript代码,要以正确的方式而不混合内容,您需要定义
{%block%}
base.html
模板中,通过
DTL
继承机制,您可以按照正确的顺序以正确的方式加载javascript,而不会产生任何冲突

base.html
define中,比如说
{%block javascripts\u local%}{%endblock%}
like

{% load static %}
<!doctype html>
<html class="no-js" lang="{% block lang %}en{% endblock %}">
<head>

[..]

</head>
<body{% block body_attributes %}{% endblock %}>

[..]

  {% block javascripts %}

  <!-- i'm using HTML5 Boiler Plate template -->
  <script src="{% static 'js/vendor/modernizr-3.7.1.min.js' %}"></script>
  <script src="{% static 'js/plugins.js' %}"></script>
  <script src="{% static 'js/main.js' %}"></script>

  <!-- override this block in child template -->
  {% block javascripts_local %}{% endblock %}

  {% endblock %}
</body>
</html>
{%load static%}
[..]
[..]
{%block javascripts%}
{%block javascripts_local%}{%endblock%}
{%endblock%}
然后在子模板中覆盖块

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


[..]

{% block javascripts_local %}
<script>
  // Your javascript code goes here
</script>
{% endblock %}
{%extends'base.html%}
{%load static%}
[..]
{%block javascripts\u local%}
//您的javascript代码在这里
{%endblock%}

非常感谢。它可以根据我的需要工作200%。非常感谢你的帮助。但是我问了一些其他的问题,但仍然非常感谢。这将在其他一些工作中帮助我提高网站的效率。谢谢。是的,你是对的,但值得一提的是,视图函数不是用来生成javascript代码的,它们是用来做其他事情的,例如:处理从csv文件加载的数据,请求数据库。。然后将结果传递给模板。好的实践。是的,你完全正确,这次我只是需要它来完成一项特定的任务,也就是说,我在前端使用了一些javascript框架,需要从后端输入特定的结果(特别是用于绘制图形的向量坐标)。但除此之外,我完全同意您的观点,并将始终记住,除非绝对必要,否则不要从后端生成js代码。另外,从后端生成Js代码对我来说非常麻烦,尽可能避免它绝对值得。再次感谢你。
<script>
console.log('sanity check');
 {{js_var|safe}}
 
</script>
sanity check
JavaScript which i want to add
{% load static %}
<!doctype html>
<html class="no-js" lang="{% block lang %}en{% endblock %}">
<head>

[..]

</head>
<body{% block body_attributes %}{% endblock %}>

[..]

  {% block javascripts %}

  <!-- i'm using HTML5 Boiler Plate template -->
  <script src="{% static 'js/vendor/modernizr-3.7.1.min.js' %}"></script>
  <script src="{% static 'js/plugins.js' %}"></script>
  <script src="{% static 'js/main.js' %}"></script>

  <!-- override this block in child template -->
  {% block javascripts_local %}{% endblock %}

  {% endblock %}
</body>
</html>
{% extends 'base.html' %}
{% load static %}


[..]

{% block javascripts_local %}
<script>
  // Your javascript code goes here
</script>
{% endblock %}