Django:当使用python变量时,如何在静态文件夹中保持JavaScript代码的独立性
Django: How to keep JavaScript code separate in static folder when it uses a python variable
我有一堆画布需要渲染。我不想把python循环中的JavaScript代码,因为我觉得这是的糟糕做法
home.html
{% load staticfiles %}
<head>
<script type="text/javascript" src="{% static
'canvas/canvasrender.js' %}"></script>
</head>
{% for canvas in user_canvas_set %}
<canvas class = "canvas" id="{{canvas.id}}" width="400" height="200"
canvas_post= ""{{canvas.canvas_post}}"" >
Your browser does not support the HTML5 canvas tag.</canvas>
**<script>
canvasrenderNP.canvaswrite("{{canvas.id}}","{{canvas.canvas_post}}")
</script>**
{% endfor %}
我制作了一个自定义函数,返回一个用户canvas id数组,因为我使用canvas id作为canvas元素的id。
home.html
<script>
alert("{{user_canvas_ids}}")
</script>
我得到想要的输出:
[247, 248, 251, 252]
现在,当我把这个放在一个静态文件
canvasrender.js
alert("{{user_canvas_ids}}")
然后将其加载到home.html
{% load staticfiles %}
<head>
<script type="text/javascript" src="{% static
'canvas/canvasrender.js' %}"></script>
</head>
输出:
"{{user_canvas_ids}}"
我很困惑到底发生了什么。我以为script标记在"<script> </script>
"之间插入了js文件
我知道我可以制作这样的元素并获得属性,但我觉得这不是一个好的练习,或者可以吗?
<p id="canvas_ids" canvas_ids ="{{user_canvas_ids}}"> </p >
我还能做些什么来避免编写JavaScript代码吗在HTML文件中?
为什么这不是一个重复的问题。它没有说明为什么html页面中链接的js文件不能保持对python变量的引用。但是,如果JavaScript是在html页面中编码的,它可以
正如您在自己的评论中提到的,您可以将user_canvas_id
保存在home.html
中的js变量中,并在js文件中访问它。类似这样的东西:
<head>
<script>var user_canvas_id = "{{ user_canvas_id }}"</script>
<script type="text/javascript" src="{% static 'canvas/canvasrender.js' %}"></script>
</head>
我很困惑到底发生了什么。我以为script标记在"
<script> </script>
"之间插入了js文件
有点像,但这是由不知道Django模板中花括号的特殊含义的浏览器在客户端完成的。
Django上下文中的static
意味着:Django按原样提供文件,而不通过模板引擎运行它。(无论如何,这在这里都没有帮助,因为对于隔离的JavaScript文件,user_canvas_ids
的值是未知的,所以模板引擎无法用任何有用的东西来代替它。)
- 如何在android中使用phonegap将文件从一个文件夹移动/复制到另一个文件夹
- 如何将乳胶配方奶粉图像保存到Asp.net中的文件夹中
- 展开和折叠文件夹
- 在ng重复循环中显示来自不同文件夹的图像
- 如何将所有JS文件连接到一个文件夹中
- 是否可以用JavaScript显示等效的文件夹对话框
- grunt上的压缩文件夹不起作用
- 如何在javascript中获取静态公用文件夹中的文件列表
- 对于 Node Js 服务器,如何从不同的文件夹引用静态 html 文件
- 如果脚本位于静态文件夹中,则 CSRF 验证不起作用
- CMIS11.1浏览器绑定:如何仅使用静态HTML+JavaScript显示文件夹的内容
- Nodejs express静态文件夹对某些文件不起作用
- Express服务器静态文件夹不提供文件
- 无论如何Express在Node.js可以有一个以上的静态文件夹
- 从不同的目录运行node应用程序会让静态文件夹显得很滑稽
- Django:当使用python变量时,如何在静态文件夹中保持JavaScript代码的独立性
- 如何在共享主机上通过快递使用静态文件夹
- 表示从隐藏(点)文件夹提供静态文件
- Node.js:子页面找不到公共静态文件夹
- Node.js公共静态文件夹以utf-8字符集服务js