inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

남박사의 파이썬으로 실전 웹사이트 만들기

글 작성 폼에 HTML 에디터 기능 추가하기

이미지 업로드 ajax 문의 드립니다.

331

가후

작성한 질문수 90

1

ajax 코드에서 

$.ajax({
            url: "{{ url_for('board.upload_image')}}",
            cache: false, 
            contentType: false,
            processData: false, 
            data: data,   
            type: "post",
            success: function(url){
                var image = $("<img>").attr("src", url).css("max-width", "900px");
                $("#summernote").summernote("insertNode", image[0]);            
            },
            error: function(data){
                console.log(data);  // 디버깅할수있게 표시
                alert(data);
            }           
        })

 

sucess 부분을 이해 못하겠습니다

url를 flask 에서 줘야하는데

flask 서버에서 url을 어떤 코드가 주는지 도저히 모르겠습니다.

 

혹시 return send_from_directory 가 

url을 주는건가요?

flask 서버에서 

print(send_from_directory(app.config["BOARD_IMAGE_PATH"], filename))

해보니

출력되는 값이 

<Response streamed [304 NOT MODIFIED]>

이거 더군요

 

해당값이 html로 넘어가면서 이미지 주소를 넘겨 주는거 같은데 맞나요?

 

 

python

답변 1

1

남박사

$.ajax({
    url: "{{ url_for('board.upload_image')}}",
    success: function(url) {
        console.log(url);
    }
};

 

위의 코드에서 success 의 url 은 ajax 대상의 url {{url_for('board.upload_image')}} 가 반환해주는 값을 사용하게 됩니다. 물론 여기서는 url 을 받기 위해 사용하지만 이 값은 어떤 자료형식이던 사용할 수 있습니다. 일단 여기서는..

success 에서 url 은 upload_image() 함수가 리턴해주는 값을 사용합니다. upload_image() 함수는위의 이미지에서 처럼 url_for 로 board.board_imaegs 에 <filename> 을 매개변수로 사용하여 값을 만들고 있습니다.

board.board_images 는 /images/<filename> 이므로 최종적으로 upload_imaegs 는

http://localhost/images/abcd.jpg 

같은 주소를 반환하게 되고 success 는 이 값을 사용하게 됩니다.

 

0

가후

선생님 너무 신기하네요

선생님 설명을 듣기전에는 

ajax >  board.upload_image() > board_images() > ajax 와 통신

할것 같은데,

board.upload_image()  요 함수가 ajax와 통신을 하고나서 ,

board_images() 여기로 넘어가나 보네요

 

자세한 답변 감사드립니다. 쉽게 이해되었습니다!

 

0

남박사

네 board_images 는 img 태그에서 이미지를 요청할때 이미지를 전송해주는 역할을 하고 있는 것이죠 그 부분이 조금 헷갈릴 수 있습니다. ㅎㅎ

iis 접속후 자동으로 로그인 창이 나오도록 설정이 기능한가요?

0

85

2

리스트 이동 시 창 에러 발생

0

90

1

배포후 회원 등록 후 로그인 에러...

0

88

2

내부 서버 오류

0

87

2

app.config["MONGO_URI"] = "mongodb://localhost:27017/pm_db"

0

65

2

DB 검색하면 데이터가 없습니다. 라고 나와요. 5시간을 찾아봐도 모르겠어서 문의드려봅니다.

0

63

1

몽고db studio3T를 깔았는데

0

72

2

flake8과 linter

0

91

3

500이 뜹니다.

0

66

2

첨부파일 삭제

0

73

2

검색기능 질문

0

75

2

google.py

0

75

2

Studio 3T에 DB insert가 되지 않는 문제를 해결하지 못하고 있습니다 ㅠ

0

93

3

혹시 전체 코드 공개되어 있나요?

0

104

1

join.html 의 form 태그값 을 member_join() 에서 처리못함.

0

112

1

google.py 몽고db 샘플데이터 만들기

0

111

2

flake8 설치 이후 명령팔레트에서 linter가 안보입니다.

0

254

2

파이썬으로 만들어서 웹호스팅에 올릴경우

0

316

1

현재 구글검색 무한스크롤변경 문의합니다

0

306

1

몽고디비아틀라스로 추가 공부해서 올립니다.

0

225

1

IIS 500.19에러

0

669

2

버전 문제도 수정했는데 결과가 안나옵니다.

0

266

1

데이터베이스 저장관련 질문입니다.

0

280

1

test가 생기지 않습니다.

0

520

3