2

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

我已经成功创建了我的 python 脚本,它给了我想要的输出,但直到现在我只是在我的本地机器上运行我的脚本。

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

我一直在寻找答案已经有一段时间了,这是我的发现

  1. 烧瓶
  2. pld3
  3. 这个 Stackoverflow 问题
  4. 天后

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

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

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

1 回答 1

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

您的烧瓶端点可能如下所示:

@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 。搜索其他来源,您将很快进入。对于部署,您还需要运行您的烧瓶应用程序的应用程序服务器,因为烧瓶本身还没有准备好生产。我可以推荐 Gunicorn,这里是使用 Nginx 代理 Web 服务器设置 Gunicorn 的众多教程之一:https ://tutorials.technology/tutorials/71-How-to-setup-Flask-with-gunicorn-and-nginx-与-examples.html。请搜索这个主题,那里有很多教程。

于 2018-04-04T04:51:36.850 回答