为我的python脚本创建一个WEB UI

时间:2018-04-04 03:56:53

标签: 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
  5. 现在我对这些技巧有所了解。但我找不到一些完美的例子来帮助我处理我的情况。我想让你知道的几件事情,我有一个现成的HTML文件,还有CSS。我正在为我的远程服务器使用Google控制台VM实例。

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

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

1 个答案:

答案 0 :(得分:2)

  • 嗨,所以你需要一些python web框架 提到的烧瓶可能是不错的选择。
  • 要将您的应用程序部署到生产环境,您还需要一个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-with-examples.html。请搜索这个主题,那里有很多教程。