4

フラスコに読み込まれた画像名のリストがあり、これを html テンプレートにレンダリングして、ページに画像を表示します。画像リストを変更する (つまり、画像を追加する) 唯一の方法は、リストを変更するコードを含むビューを作成することですが、ビューにアクセスするには、ページ全体を再度リロードする必要があります。ページ全体をリロードせずにフラスコでリストを変更する方法はありますか?

4

1 に答える 1

9

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>
于 2012-10-31T18:06:56.707 に答える