Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用XML+;AJAX+;烧瓶+;HTML动态更新网站?_Html_Jquery_Ajax_Xml_Flask - Fatal编程技术网

如何使用XML+;AJAX+;烧瓶+;HTML动态更新网站?

如何使用XML+;AJAX+;烧瓶+;HTML动态更新网站?,html,jquery,ajax,xml,flask,Html,Jquery,Ajax,Xml,Flask,我试图创建一个网站,从XML字典收集信息,并通过AJAX将其发送到Flask,动态显示在HTML页面上,这样当XML文件更新时,更改会立即反映在网站上。理想情况下,网站每5分钟请求一次新数据。到目前为止,我已经准备好Python Flask服务器设置和HTML页面。剩下的就是AJAX。以前从未使用过AJAX或Javascript,因此需要一段时间来学习。如果有人能看看我的脚本,帮助创建缺少的AJAX,并建议我如何继续,那将是excellet @AzyCrw4282@Depado App.py:烧

我试图创建一个网站,从XML字典收集信息,并通过AJAX将其发送到Flask,动态显示在HTML页面上,这样当XML文件更新时,更改会立即反映在网站上。理想情况下,网站每5分钟请求一次新数据。到目前为止,我已经准备好Python Flask服务器设置和HTML页面。剩下的就是AJAX。以前从未使用过AJAX或Javascript,因此需要一段时间来学习。如果有人能看看我的脚本,帮助创建缺少的AJAX,并建议我如何继续,那将是excellet

@AzyCrw4282@Depado

App.py:烧瓶

    # Import Flask Framework Here:
from flask import Flask, flash, redirect, render_template, request, session, abort, url_for
app = Flask(__name__)

# ./Home Script:
@app.route("/")
@app.route("/index")
def index():
    return render_template('index.html')
data.XML:每5分钟更新一次内容

<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>
Gold.co.ukSilverMaple 31.56英镑Gold.co.ukSilverBritannia 32.4英镑postssilvermaple 32.76英镑postssilvermaple 27.12英镑postssilverbritannia 23.88英镑postssilverphilanic 26.88英镑
index.html:表中必须显示每枚硬币的价格

    <table>
      <tr>
        <th>Company</th>
        <th>AG Sovereign</th>
        <th>AG Phillaharmonic</th>
        <th>AG Maple</th>
      </tr>
      <tr>
        <td>Gold.co.uk</td>
        <td>{{ GLDAG_BRITANNIA_WEB }}</td>     # price of britannia from xml here
        <td>{{ GLDAG_PHILHARMONIC_WEB }}</td>  # price of philharmonic from xml here
        <td>{{ GLDAG_MAPLE_WEB }}</td>         # price of maple from xml here
      </tr>
    </table>

公司
主权银行
爱乐乐团
银枫
Gold.co.uk
{{GLDAG_BRITANNIA_WEB}}{price of BRITANNIA from xml here
{{GLDAG_phillharmonic_WEB}}{price of phillharmonic from xml here
{{GLDAG_MAPLE_WEB}}这里是xml中的MAPLE价格

您需要编写另一个端点来解析XML文件,将数据格式化到字典中并提供服务。很抱歉,我无法编写解析XML的函数

import jsonify

@app.route('/ajax')
def ajax:
    data = parse_xml()
    return jsonify(data)
对于html页面,您可能需要更改html表的第二行:

<tr>
  <td>Gold.co.uk</td>
  <td id="britania"></td>     # price of britannia from xml here
  <td id="philharmonic"></td>  # price of philharmonic from xml here
  <td id="maple"></td>         # price of maple from xml here
</tr>
以下是一些帮助您使用AJAX的资源:


  • 更改HTML的第二行是什么意思?应该改成什么?我指的是桌子的那一行。我已经更新了我的解释。
    $.ajax({
       url: '/ajax',
       type: 'GET',
       success: function(data){
          $("#britannia").text(data.britannia)
          $("#philharmonic").text(data.philharmonic)
          $("#maple").text(data.maple)
       }
    })