4
我有一個加載了瓶子的圖像名稱列表,我正在渲染一個html模板,以便頁面顯示圖像。我似乎可以改變圖像列表(即添加圖像)的唯一方法是創建一個視圖,其中包含用於更改列表的代碼,但爲了訪問視圖,必須重新加載整個頁面。有沒有什麼辦法可以用燒瓶來改變列表而不必重新加載整個頁面?更改變量而不重新加載頁面
我有一個加載了瓶子的圖像名稱列表,我正在渲染一個html模板,以便頁面顯示圖像。我似乎可以改變圖像列表(即添加圖像)的唯一方法是創建一個視圖,其中包含用於更改列表的代碼,但爲了訪問視圖,必須重新加載整個頁面。有沒有什麼辦法可以用燒瓶來改變列表而不必重新加載整個頁面?更改變量而不重新加載頁面
雅各布·鮑耶是絕對正確的 - 使用了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))
在你的模板
,然後只需點擊相應的端點:使用JavaScript
<!-- 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>
Ajax請求? –
是的,但我想特意更改圖像列表,這是一個python變量。我會使用js,但它更容易使用glob與Python,所以我可以加載圖像,而不需要知道它們的文件名。 – fergusdawson