python - 为我的 python 脚本创建 WEB UI

标签 python jquery matplotlib flask mpld3

所以,我有一个网站,我想在其中实时显示机器学习程序的输出。每个输出都基于用户的输入。

我已经成功创建了 python 脚本,它为我提供了所需的输出,但直到现在我只是在本地计算机上运行我的脚本。

我正在使用 matplotlib、numpy、sci-kit 和与它们类似的软件包,我需要创建一个 Web UI,可以通过单击 html 按钮运行 python 脚本,然后显示生成的 matplotlib 图形。

我已经寻找答案很长一段时间了,这是我的发现

  1. Flask
  2. mpld3
  3. This Stackoverflow Question
  4. Diva

现在我对所有这些技术有所了解了。但我找不到一些完美的例子来帮助我解决我的情况。我想让你知道的几件事是,我有一个现成的 HTML 文件和 CSS。我正在为我的远程服务器使用 Google Console VM 实例。

所以,总而言之,我只需要解决以下问题。

  • 用户从我的 html 页面中选择一个选项。
  • 远程服务器收到请求,启动必要的 python 脚本
  • Python 脚本以 matplotlib、文本和数字的形式返回数据。
  • 我的 HTML 页面获取数据、解析数据并显示输出。

最佳答案

  • 嗨,所以你需要一些 python Web 框架,就像你已经一样 提到的 flask 可能是不错的选择。
  • 要将您的应用程序部署到生产环境,您还需要一个 Web 服务器在您的远程服务器上运行。
  • 之后,您可以设置网络服务器以与您的网络进行通信 Flask 运行应用程序。

你的 flask 端点可能看起来像这样:

@app.route('/evaluate', methods = ['GET', 'POST'])
def index():
if request.method == 'POST':
    # Computed ML output
    output = compute_data(data)
    # Format to graph data
    graph_data = transform_to_graph(output)
    # Pass data to the template
    return render_template('graph-view.html', graph_data=graph_data)

return render_template('main.html')

其中 main.html 将是带有按钮和用户输入的页面:

<!DOCTYPE html>
<html>
<head>
<title>User Input</title>
</head>
<body>
<h1>Provide with input</h1>
<form method="post" action="/evaluate">
<input type="text" name="data">
<input type="submit" value="Evaluate">
</form>
</body>
</html>

这可能是 Flask 基础知识的非常简单明了的教程: https://www.codementor.io/overiq/basics-of-flask-fzvh8ueed 。 搜索其他来源,您会很快找到答案。对于部署,您还需要运行 Flask 应用程序的应用程序服务器,因为 Flask 本身还没有准备好投入生产。我可以推荐 Gunicorn,这是展示使用 Nginx 代理 Web 服务器设置 Gunicorn 的众多教程之一:https://tutorials.technology/tutorials/71-How-to-setup-Flask-with-gunicorn-and-nginx-with-examples.html 。请搜索这个主题,那里有很多教程。

关于python - 为我的 python 脚本创建 WEB UI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49642502/

相关文章:

matplotlib - 减少两个箱形图之间的距离

python - 绘制时间太接近

python - 在 Python 中停止程序并保存数据的最佳方法是什么?

javascript - 将 konva js Canvas 转换为图像并将这些图像加载到另一个 Canvas

javascript - 如何使用 jquery 禁用复选框?

python - 如何在 Python 的 seaborn 中将 tsplot 与 FacetGrid 一起使用?

python - 选择存储在对象列中的日期时间的 DataFrame 行

python - Kivy 文本输入换行

python - 无法使用 python 中的 selenium webdriver 发送 key

javascript - 如何在 onclick review.save 操作之前验证必填字段