【问题标题】:Python - Flask - MatPlotLibPython - 烧瓶 - MatPlotLib
【发布时间】:2020-04-23 23:28:53
【问题描述】:

我正在尝试从我传递到烧瓶应用程序的函数中嵌入一个图。

下面的一切都很好,但会在浏览器之外启动绘图。

我已经阅读了很多关于 IO 的内容,但我对如何/在哪里处理它感到困惑。

app.py 中的函数 runBB() 返回 plt.show()。传递从表单中检索的符号后。我应该传递 fig 来在 app.py 中进行 IO 计算,还是应该在包含该函数的文件中进行?

我不想将文件保存在任何地方,因为从多重的角度来看,我希望它是动态的,而不是覆盖保存的文件,我相信这是 IO 解决的问题。

app.py

#Dashboard page
@app.route("/dashboard", methods = ["POST", "GET"])
def dashboard():
    if person["is_logged_in"] == True:
        return render_template("dashboard.html", email = person["email"], name = person["name"])
    else:
        return redirect(url_for('login'))

@app.route("/form", methods = ["POST", "GET"])
def form():
    if request.method == "POST":
        symbol = request.form["symbol"]
        bytes_obj = runBB(symbol)

        return render_template("dashboard.html", symbol=bytes_obj)

dashboard.html

{% extends "layout.html" %}
{% block content %}
<head>
    <title>Welcome</title>
    <link rel="stylesheet" type="text/css" href="{{url_for('static', filename = 'dashboard.css')}}">
    <link rel="stylesheet" type="text/css" href="../static/dashboard.css">
</head>
<body>
<div class="main">
    <h1 class="name">Hi, {{name}}</h1>

    <form action="{{ url_for('form') }}" method ="POST">
    <p><input placeholder="Enter your symbol" type="text" name="symbol"></p>
    <p><input type="submit" value="Run Report" class="btn-default"></p>
    </form>

    <P>{{bytes_obj}}</P>

    <!-- <hr style="width: 30%"> -->
    <h3 class="email">{{email}}</h3>
</div>
</body>
{% endblock %}

有人能指出正确的方向吗?

我试图理解其他类似的 stackoverflow 问题,但似乎无法理解或将其放在一起。

【问题讨论】:

  • 看看这个答案:stackoverflow.com/a/41460112/42346 这是你完成这项工作的一种方法。
  • 网页的工作方式与桌面程序不同,matplotlib 是为在桌面上工作而创建的,而不是在网页上工作。但是有一个模块 mpl3d 使用 javascript 模块 D3.js 为 HTML 页面生成 Matplotlib 图。
  • @mechanical_meat 那么我是否可以让函数返回 plt,这样当我在 app.py 中调用该函数时,我可以获取 plt 并将其保存在 app.py 中?
  • @rossinbossin:比这更复杂一点。或者,也许像 furas 所说的那样研究 mpl3d。
  • @furas 我研究了 mpld3 并尝试了一些我可能需要重新审视的概念。

标签: python matplotlib flask


【解决方案1】:

请参阅此链接以了解如何使用:

import io
import base64

https://gitlab.com/snippets/1924163

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-16
    • 2021-09-25
    • 1970-01-01
    • 1970-01-01
    • 2013-12-05
    • 2020-10-18
    • 2018-05-24
    相关资源
    最近更新 更多