Mic*_*rie 5 python ajax jquery flask flask-sqlalchemy
我有一个Web应用程序,当HTML中的select元素发生更改时,它会从Flask获取动态数据.当然这是通过jquery ajax完成的.没有probs在这里我得到了.
问题是,Flask发送的动态数据是Flask-sqlalchemy数据库中的对象列表.
当然,数据是从Flask发送的JSON.
我想迭代这些对象以使用Jinja显示他们的信息.
<select id="#mySelect">
<option value="option1" id="1">Option 1 </option>
<option value="option2" id="1">Option 2 </option>
<option value="option3" id="3">Option 3 </option>
</select>
Run Code Online (Sandbox Code Playgroud)
$('body').on('change','#mySelect',function(){
var option_id = $('#mySelect').find(':selected').attr('id');
$.ajax({
url: "{{ url_for('_get_content') }}",
type: "POST",
dataType: "json",
data: {'option_id':option_id},
success: function(data){
data = data.data;
/* HERE I WANT TO ITERATE THROUGH THE data LIST OF OBJECTS */
}
});
});
Run Code Online (Sandbox Code Playgroud)
@app.route('/_get_content/')
def _get_content():
option_id = request.form['option_id']
all_options = models.Content.query.filter_by(id=option_id)
return jsonify({'data': all_options})
Run Code Online (Sandbox Code Playgroud)
Mic*_*rie 14
好的,我明白了.
简单地说,我制作了一个外部html文件并添加了所需的jinja模板.
{% for object in object_list %}
{{object.name}}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
然后在我的Flask文件中,我逐字地将render_template响应返回给jquery(其中包含我想要追加的HTML)
objects_from_db = getAllObjects()
return jsonify({'data': render_template('the_temp.html', object_list=objects_from_db)}
Run Code Online (Sandbox Code Playgroud)
然后只需将响应中的HTML附加到要更新的所需div即可.
归档时间: |
|
查看次数: |
5171 次 |
最近记录: |