2012-10-31 3 views
4

플라스크로로드 된 이미지 이름 목록이 있습니다.이 템플릿은 html 템플릿으로 렌더링되어 페이지에 이미지가 표시됩니다. 이미지 목록을 변경 (즉, 이미지 추가)하는 유일한 방법은 목록을 변경하는 코드가 포함 된보기를 만드는 것이지만보기에 액세스하려면 전체 페이지를 다시로드해야합니다. 전체 페이지를 새로 고침하지 않고 플라스크로 목록을 변경할 수있는 방법이 있습니까?페이지를 다시로드하지 않고 변수 변경

+6

아약스 요청 : 템플릿에서 다음

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)) 

그냥 적절한 엔드 포인트에 충돌? –

+0

네,하지만 파이썬 변수 인 이미지 목록을 특별히 변경하고 싶습니다. 나는 js를 사용할 것이지만, 파일 이름을 알 필요가없이 이미지를로드 할 수 있도록 파이썬으로 glob을 사용하는 것이 더 손쉬운 방법이다. – fergusdawson

답변

10

야콥 보이어는 절대적으로 정확 - 사용 아약스 : 자바 스크립트와

<!-- 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> 
관련 문제