使用带有Python Flask的AJAX将html插入到模板中

时间:2016-01-06 13:49:59

标签: python ajax python-2.7 flask

我正在尝试做一些我觉得很简单的事情但是我是一个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请求已经完成。 谢谢

1 个答案:

答案 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>