【问题标题】:How should I be importing XML for display in Flask?我应该如何导入 XML 以在 Flask 中显示?
【发布时间】:2020-06-10 16:23:16
【问题描述】:

我有一个每 5 分钟更新一次的 XML 文件 (data.xml)。我还有一个在同一平台上运行的 Flask Webserver (app.py)。该网络服务器托管一个 HTML5 页面 (index.html)。在 HTML (index.html) 页面上的设定位置显示来自 XML 页面的信息并让它每 5 分钟更新一次以及页面刷新时的最有效方法是什么?有人建议我查看 AJAX 和 jQuery,但由于我对这些没有经验,所以它们似乎有点令人困惑。我需要一些帮助来找到最有效的解决方案。对编程相当陌生。提前谢谢你。

数据.xml:

    <?xml version='1.0' encoding='utf-8'?>
    <root>
      <coin>
        <trader variable="GLDAG_MAPLE">Gold.co.uk</trader>
        <metal>Silver</metal>
        <type>Maple</type>
        <price>£31.2</price>
      </coin>
    </root>

Data2.xml:data.xml 转换为字典

<root><coin><trader variable="GLDAG_MAPLE">Gold.co.uk</trader><metal>Silver</metal><type>Maple</type><price>£31.56</price></coin><coin><trader variable="GLDAG_BRITANNIA">Gold.co.uk</trader><metal>Silver</metal><type>Britannia</type><price>£32.4</price></coin><coin><trader variable="GLDAG_PHILHARMONIC">Gold.co.uk</trader><metal>Silver</metal><type>Philharmonic</type><price>£32.76</price></coin><coin><trader variable="BBPAG_MAPLE">Bullion By Post</trader><metal>Silver</metal><type>Maple</type><price>£27.12</price></coin><coin><trader variable="BBPAG_BRITANNIA">Bullion By Post</trader><metal>Silver</metal><type>Britannia</type><price>£23.88</price></coin><coin><trader variable="BBPAG_PHILHARMONIC">Bullion By Post</trader><metal>Silver</metal><type>Philharmonic</type><price>£26.88</price></coin></root>

App.py:

from flask import Flask, flash, redirect, render_template, request, session, abort, url_for
app = Flask(__name__)

# ./Home Script + Portfolio Page:
@app.route("/")
@app.route("/index")
def index():
    return render_template('index.html')

索引.html:

<td> Price from XML file needs to be presented here! </td>

【问题讨论】:

    标签: python html xml


    【解决方案1】:

    对于定期更新的情况,最好使用jQueryAjax之类的。以下是我将遵循以解决您的问题的过程。

    1. 将您的 xml 文件转换为 dict,以便可以在模板中轻松访问它。见convert-an-xml-string-to-a-dictionar

    2. 使用 Ajax 和 Js(如果您愿意,可以使用 jQuery)以给定的时间间隔请求更新。请参阅以下示例 update-and-render-a-value-from-flask-periodicallydynamically-update-html

    3. 然后您只需以标准方式呈现模板中的值。

    这样,当您的文件每 5 分钟更新一次时,它就可以动态更新到模板中。

    如果您有任何问题,请告诉我。

    【讨论】:

    • 所以我的包含字典 (data2.xml) 的 XML 文件现在已经设置好了。使用来自 (stackoverflow.com/questions/15721679/…) 的答案,如何将字典中的数据连接到 javascript 文件和具有烧瓶脚本的 python 文件?
    • 还没有。 jQuery AJAX 脚本有问题。它并不适合我,因为我不知道如何使用 jQuery。你能帮忙写剧本吗?我很确定我可以做 Python 和 HTML 方面的事情。
    • 这很简单——jQuery 只是一个 javascript 库。从2 看这两个例子。如果您遇到困难,也请查看jQuery 的文档 - 这是学习的唯一方法。如果您仍然遇到问题,请考虑将问题作为一个较新的问题发布并在此处@我,以便我查看它。
    猜你喜欢
    • 2014-05-10
    • 2021-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-05
    • 2019-03-12
    • 1970-01-01
    相关资源
    最近更新 更多