You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

点击HTML按钮运行Python绘图脚本失败及jQuery安装疑问

问题分析与修复方案

核心问题原因

你的代码无法运行Python脚本的关键在于:直接通过AJAX请求Python文件只会下载该文件,不会执行它。浏览器端JavaScript没有权限直接执行本地Python脚本,必须通过后端服务触发执行。

具体错误点:

  • AJAX请求逻辑错误:当前AJAX仅请求Create_Chart.py的文件内容,浏览器将其视为普通文本处理,完全没有执行生成图表的Python代码,自然不会生成图表。
  • 路径潜在风险:Python脚本使用绝对路径保存图表,即使脚本能运行,后续HTML也可能因权限或跨域问题无法访问该本地文件,建议改用相对路径。

修复方案

要实现点击按钮运行Python脚本并展示图表,需搭建简单后端服务(以Flask为例):

1. 安装Flask

执行终端命令:

pip install flask

2. 创建Flask后端文件(app.py)

将生成图表的逻辑封装为接口,和原文件同目录:

from flask import Flask, render_template
import numpy as np
import matplotlib.pyplot as plt
import os

app = Flask(__name__)

# 创建静态资源目录(用于存储图表)
if not os.path.exists('static'):
    os.makedirs('static')

# 返回HTML页面
@app.route('/')
def index():
    return render_template('index.html')

# 执行生成图表的接口
@app.route('/run_script')
def run_script():
    rand = np.random.normal(100, 1, size=[100, 1])
    plt.plot(rand)
    # 保存到Flask默认可访问的static目录
    plt.savefig('static/example_chart.png')
    plt.close()  # 释放内存资源
    return {'status': 'success'}

if __name__ == '__main__':
    app.run(debug=True)

3. 修改HTML文件(重命名为index.html,放在templates目录下)

添加图表展示标签,并修正AJAX请求目标为后端接口:

<!DOCTYPE html>
<html>
<head>    
</head>
<body>
    <input type="button" id='script' name="scriptbutton" value=" Run Script " onclick="goPython()">
    <!-- 用于展示生成的图表 -->
    <img id="chart_img" src="" style="display:none;" alt="生成的图表">

    <script src="http://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>

    <script>
        function goPython(){
            $.ajax({url: "/run_script", context: document.body})
            .done(function() {
                alert('Python脚本执行完成');
                // 加载新生成的图表(加时间戳避免缓存)
                $('#chart_img').attr('src', '/static/example_chart.png?' + new Date().getTime());
                $('#chart_img').show();
            })
            .fail(function() {
                alert('脚本执行失败');
            });
        }
    </script>
</body>
</html>

4. 运行服务

终端执行:

python app.py

打开浏览器访问http://127.0.0.1:5000,点击按钮即可生成并显示图表。

关于jQuery的疑问

不需要本地安装jQuery,你当前引用的远程CDN版本可直接使用,只要浏览器能联网就能正常加载。若需离线使用,可下载jQuery文件到本地目录,修改src为本地路径(如./jquery-3.3.1.min.js)。

内容的提问来源于stack exchange,提问作者jessica

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 16:35:50