我有一个装有flask的图像名称列表,我将其渲染为html模板,以便页面显示图像。我似乎可以改变图像列表(即向其添加图像)的唯一方法是创建一个包含更改列表的代码的视图,但是为了访问视图,您必须重新加载整个页面。有没有办法我可以用烧瓶更改列表而无需重新加载整个页面?
答案 0 :(得分:10)
Jakob Bowyer绝对正确 - 使用ajax:
from flask import jsonify
from werkzeug.security import safe_join
@app.route("/gallery")
def gallery():
images = get_images_from_dir("some/base/path/*.jpg")
return render_template("gallery.html", images=images)
@app.route("/search/images", methods=["POST"])
def search_images():
glob_path = request.form["image_query"]
glob_path = safe_join("/some/base/path", glob_path)
return jsonify(images=get_images_from_dir(glob_path))
然后在你的模板中点击相应的终点:
<!-- snip -->
<script>
// jQuery here - you can use anything you want :-)
$.post({
url: "{{ url_for("search_images") }}",
success: function(data) {
console.log(data);
},
error: function() { console.log("Error", arguments); }
});
</script>