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