flask 활용해서 분석결과 이미지가 웹상에서 안바뀌어요

조회수 395회

키워드를 입력받으면 그거에 맞는 분석결과를 보여주는 프로그램을 만들고 있는데 예를들어 셀토스라고 입력을 받으면 분석을 진행하고 그에 맞는 분석결과를 보여주는데 분석결과를 제가 이미지로 저장해서 결과페이지에 뿌려주는 형태로 코드를 짰는데 처음은 분석결과가 잘나오는데 두번째부터 키워드를 바꿔서 해도 전과 같이 "셀토스"키워드로 검색한 결과 이미지가 그대로 나옵니다ㅠㅠ 개발환경에서는 이미지도 새롭게 덮어씌워져서 새로운 키워드형태로 잘 저장되어있는데 웹에 뿌려지는건 처음에 했던 키워드로 분석한 이미지가 저장됩니다 ㅠㅠ 왜이러는걸까요? ㅠㅠ

1- 분석결과를 저장하고

코드: plt.savefig("static/image/aaa.png")

2 -저장한걸 result.html로 보내주고

코드 : return render_template("result.html", image_file='static/image/aaa.png' )

result.html 에서 그냥 img 형태로도 찍어보고 url_for로도 찍어봤는데 계속 이미지가 안변해요 ㅠㅠ

{% if True %}
<div>
    <img src="{{ url_for('static', filename = image_file) }}"/>
</div>
{% endif %}
<img src = "../static/image/aaa.png">

1 답변

  • 엽토군님 말씀대로 브라우저 캐싱 때문에 브라우저에 의해 캐싱되지 않게 해당 파일을 base64로 인코딩해서 화면에 뿌리면 좋을거 같습니다.

    from flask import Flask, render_template_string
    import base64
    
    app = Flask(__name__)
    
    template = '<body> <img src="data:image/png;base64,{{img}}"> </body>'
    
    @app.route('/')
    def main():
        with open('0.png', 'rb') as f:
            q = base64.b64encode(f.read())
        return render_template_string(template, img = q.decode())
    
    app.run(port=8008)
    

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)