将数据传递到带有烧瓶的视图

use*_*629 0 python flask

我正在使用烧瓶和双手.我有兴趣动态创建数据,然后将其传递给视图,以便以动态显示.

到目前为止,我有:

@app.route('/mv')
def my_view():

    pq = my_object()
    for p in pq:
        print str(p._data)

    return render_template('my_view.html', page_title = 'nothing yet')

if __name__ == '__main__':
    app.run()
Run Code Online (Sandbox Code Playgroud)

print语句为每个对象生成键值的字典,如下所示:

 {u': False, 'delete_at': 1438759341.674, 'id': 43, 'fa': 0, 'created_at': 1438701741.674 }
 {u': False, 'delete_at': 1438759341.675, 'id': 44, 'fa': 0, 'created_at': 1438701741.675 }
 {u': False, 'delete_at': 1438759341.675, 'id': 47, 'fa': 0, 'created_at': 1438701741.675 }
Run Code Online (Sandbox Code Playgroud)

我想将这些数据传递给视图,最好是JSON.我怎样才能做到这一点?

Bro*_*bin 6

您只需将命名参数添加到render_template调用中即可.

import json

@app.route('/mv')
def my_view():

    pq = my_object()

    # put all of the data into a list
    data = [p._data for p in pq]

    # render the template with our data
    return render_template('my_view.html', page_title = 'nothing yet', data=data)

if __name__ == '__main__':
    app.run()
Run Code Online (Sandbox Code Playgroud)

然后你可以访问data模板中的值(我假设你将它传递给javascript).

<html>
<body>
    <script>
        var data = JSON.parse('{{ data | tojson }}');
        // do stuff with the data
    </script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)