이미지 업로드 시 작성된 코드 질문입니다.
216
작성한 질문수 41
첫번째 질문입니다.
이전 강좌에서는 코드에 @blueprint.route 추가하면
뒤에 따라오는 ("/list") 이런식의 값이
사용자가 직접 입력하는 주소를 의미했잖아요?
(GET과 POST가 서로 다른 방식으로
작동한다는 것은 이해하고 있습니다.)
그럼 이미지 업로드 강의 내용 중에 ajax 통신을 하기 위해
@blueprint.route("/upload_image") 라는 코드를
작성하셨는데 그러면 ajax 통신을 할 때 눈에는 보이지
않지만 가상의 페이지를 통해서 이미지를 주고 받는건가요?
두번째 질문입니다.
upload_image 함수를 만드신 다음에 board_images 라는
함수를 만드셨는데 이 함수 내용이 리턴밖에 없습니다.
그러면 굳이 함수를 나눌 필요 없이 upload_image에서
같이 묶어서 처리할 수는 없는건가요?
명확한 기능 구분을 위해서 따로 나눈건지
아니면 url_for 함수와 send_from_directory 함수는
리턴 값으로만 넘길 수 있는건가요?
답변 1
0
첫번째.
@blueprint.route를 추가하면 사람이 생각하기에는 페이지를 의미하지만 사실 프로그램 관점에서 보면 그냥 하나의 동작함수 개념이라고 생각하시면 됩니다. 그래서 /list 던 /upload_image 던 라우트 주소에 해당하는 함수가 동작하는게 전부인데 우리가 list 에서는 html 페이지를 보여주는 기능을 작성하는거고 upload_image에서는 파일만 처리하고 특정 데이터를 리턴해주는 동작만 구현한것일 뿐입니다.
두번째.
upload_image 에서는 이미지를 저장하고 저장된 이미지의 주소값을 넘겨줍니다. 이렇게 되면 주소를 받은 html 페이지에서 <img src="주소"> 태그가 완성되는데 이때 "주소" 에서 이미지를 뿌려줘야 실제 img 태그에 이미지가 보여지게 됩니다. 여기서 이미지를 뿌려주는 역할을 board_images 라는 애가 처리하는 역할을 합니다. 질문자님께서 말씀하신 내용이라면 이미지를 저장하고 동시에 뿌려주는 기능을 말씀하신건데 그렇게 되면 <img src="주소">에서 주소를 넣을 수가 없게 됩니다. 질문자님의 의도대로 하나의 함수로 동작하게 하려면 <img src="주소"> 대신에 <img src="data:image/jpeg;base64, ....."> 태그를 사용할 수 있는데 upload_image 에서 이미지를 저장하고 저장된 이미지를 base64 인코딩해서 인코딩된 이미지 전체를 다시 리턴해주고 이를 바로 img src에 적용할 수도 있습니다. 그렇게 되면 board_images 함수는 사용하지 않고 처리할 수 있습니다.
iis 접속후 자동으로 로그인 창이 나오도록 설정이 기능한가요?
0
63
2
리스트 이동 시 창 에러 발생
0
73
1
배포후 회원 등록 후 로그인 에러...
0
72
2
내부 서버 오류
0
66
2
app.config["MONGO_URI"] = "mongodb://localhost:27017/pm_db"
0
53
2
DB 검색하면 데이터가 없습니다. 라고 나와요. 5시간을 찾아봐도 모르겠어서 문의드려봅니다.
0
44
1
몽고db studio3T를 깔았는데
0
57
2
flake8과 linter
0
72
3
500이 뜹니다.
0
57
2
첨부파일 삭제
0
66
2
검색기능 질문
0
61
2
google.py
0
66
2
Studio 3T에 DB insert가 되지 않는 문제를 해결하지 못하고 있습니다 ㅠ
0
81
3
혹시 전체 코드 공개되어 있나요?
0
95
1
join.html 의 form 태그값 을 member_join() 에서 처리못함.
0
102
1
google.py 몽고db 샘플데이터 만들기
0
99
2
flake8 설치 이후 명령팔레트에서 linter가 안보입니다.
0
236
2
파이썬으로 만들어서 웹호스팅에 올릴경우
0
303
1
현재 구글검색 무한스크롤변경 문의합니다
0
296
1
몽고디비아틀라스로 추가 공부해서 올립니다.
0
217
1
IIS 500.19에러
0
654
2
버전 문제도 수정했는데 결과가 안나옵니다.
0
256
1
데이터베이스 저장관련 질문입니다.
0
269
1
test가 생기지 않습니다.
0
503
3





