我正在尝试做一些我觉得很简单的事情但是我是一个Flask新手所以我希望有人能指出我正确的方向。
我正在为用户制作一个Python Flask应用程序来管理他们的股票组合。
我需要从yahoo财务服务器获取共享信息并在页面上呈现此信息,但是获取此数据可能需要几秒钟,此时页面为空白,直到收到GET请求,此时页面呈现
我想加载没有共享数据的页面,然后在收到数据后生成一些HTML并将此HTML插入我的页面。
我写了一条路径来获取所有数据并将其传递给Jinja2模板
@app.route('/sharedata')
def sharedata():
js = share_data.getalljsonshares(current_user.username)
io = StringIO()
data= json.dumps(js, io)
return render_template('sharedata.html', data=share_data.getalljsonshares(current_user.username))
然后,我在sharedata.html中使用以下代码来呈现HTML
{% if data %}
<h2>You own the following shares</h2>
{% for share in data %}
<li>
Ticker: {{share.symbol}}<br>
Name: {{share.name}}<br>
Quantity: {{share.quantity}} <br>
Price: {{share['price']}}
</li>
{% endfor %}
{% endif %}
这导致以下页面呈现
You own the following shares
Ticker: AAPL
Name: APPLE inc
Quantity: 1
Price: 102.71
我想知道如何自动将此HTML插入到我的模板中,我确信我需要使用AJAX和JQuery但是我有点不知道如何直接将HTML插入到我的页面中GET请求已经完成。 谢谢
答案 0 :(得分:2)
您必须使用JavaScript。使用jQuery这是一项简单的任务。
在你的main.html
中,你必须写出类似的内容:
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
</head>
<body>
<div id="result"></div>
<script>
$.on('ready', function() {
$('#result').load('/sharedata')
})
</script>
</body>