Render Jinja After Jquery Ajax Request To Flask
I have a web application that gets dynamic data from Flask when a select element from HTML is changed. of course that is done via jquery ajax. No probs here I got that. The problem
Solution 1:
Okay, I got it.
Simply, I made an external html file and added the required jinja template to it.
{% forobject in object_list %}
{{object.name}}
{% endfor %}
then in my Flask file I literally returned the render_template response to the jquery ( which contained the HTML I wanted to append )
objects_from_db = getAllObjects()
return jsonify({'data': render_template('the_temp.html', object_list=objects_from_db)}
And then simply append the HTML from the response to the required div to be updated.
Solution 2:
If you are sending data using json you don't need to use Jinja2. You can simply try something like this:
@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': [option.name for option in all_options]})
or define a method in your model something like to_json
that returns a field or dictionary or ... and call it in your view.
@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': [option.to_json() for option in all_options]})
Post a Comment for "Render Jinja After Jquery Ajax Request To Flask"