如何用Flask将JavaScript函数渲染到HTML的script标签中?
Flask渲染JavaScript函数到script标签位置的实现方法
1. 修正HTML模板
先修复你提供的HTML语法错误(</body 改为 </body>),最终模板内容如下(保存为index.html):
<body> </body> <script> {{ something|safe }} </script>
2. 编写Flask视图函数
在Flask代码中,将目标JavaScript函数定义为字符串,通过render_template传递给模板,同时使用safe过滤器确保代码不被转义:
from flask import Flask, render_template app = Flask(__name__) def showhomepage(): # 定义要渲染的JavaScript函数字符串 js_print_cars = """ function printCars(){ const cars = ['car1', 'car2']; console.log(cars); } """ return render_template("index.html", something=js_print_cars) if __name__ == "__main__": app.run(debug=True)
关键说明
Jinja2模板引擎默认会对变量内容进行HTML转义(比如将引号、大括号转成实体编码),导致JavaScript代码失效。添加|safe过滤器可以明确告诉模板:该内容是安全的原始代码,无需转义,这样printCars函数就能正常渲染到<script>标签内。
内容的提问来源于stack exchange,提问作者timmy zoper
相关产品推荐
相关产品推荐

