유저가 업로드한 프로필 이미지를 사용해야 하는데, 업로드된 이미지을 불러오는 기능을 어떻게 구현해야 할 까 해서 찾아보게 된 방식임. 대부분 정적 파일을 관리하는 또다른 서버를 둔다고 하지만 개발 단계에서의 이미지 업로드 / 이미지 표시를 해보아야 하므로 이미지 표시 기능을 따로 구현

 

1. 업로드 된 파일을 가져오는 파트


- Flask의 send_from_directory 메서드 사용

- 첫번째 인자는 폴더, 두번째 인자는 파일 이름

- 해당 리소스를 전송시켜준다.

 

@app.route('/uploads/<filename>')
def uploaded_file(filename):
    return send_from_directory('uploaded', filename)

 

2. HTML에서 이미지를 불러오는 파트


- url_for 메서드를 사용하면 첫번째 인자인 함수 이름을 가진 url을 리턴받을 수 있음.

- 두번째 인자부터는 키워드 인자로 변수 규칙에 맞추어서 대입된 url을 받아올 수 있음.

- 따라서, 아래 코드에서의 url_for의 결괏값은 uploads/eagle.jpg이다.

<image class="itemimage" src="{{ url_for('uploaded_file', filename='eagle.jpg') }}"></image>

 

'프레임워크 > Flask' 카테고리의 다른 글

[ Error ] [ SQLAlchemy ] is already attached to session  (0) 2021.12.29

+ Recent posts