• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

전혀 다른 에러가 발생해서 질문드립니다.

20.04.21 16:17 작성 조회수 1.06k

1

jquery-3.5.0.min.js:2 POST http://localhost:5000/board/upload_image 500 (INTERNAL SERVER ERROR)

현재 이런서버에서 에러가 발생한다고 나오는데 영상에서의 내용은 모두 수정한 상태입니다.

사진 업로드가 되지 않고요.

파이썬 내용입니다.  

TypeError: The view function did not return a valid response. The function either returned None or ended without a return statement.

2번째 질문으로는 autoescape false로 해둔 상황인데 글 수정을 적을때는 p태그가 다시 나옵니다 edit에도 똑같이 코드를 적어보긴했습니다.

답변 3

·

답변을 작성해보세요.

0

다른 여러가지의 png 파일을 테스트 해보신건가요? png 파일이 확장자만 png 인지 포맷이 png 지도 확인해보시기 바랍니다. 그리고 이런 문제를 해결하기 위해선 직접 디버깅 하는 습관과 노하우를 쌓으시는게 좋습니다. 예를 들어 해당 문제가 어떤 함수에서 발생하는지를 알았다면 해당 함수의 어떤 구간에서 오류가 나는지도 확인하고 이렇게 문제의 원인을 찾는 습관을 들이셔야 차후에 발생하는 문제에서도 대응할 수 있게 됩니다.

@blueprint.route("/upload_image", methods=["POST"])
def upload_image():
    if request.method == "POST":
        file = request.files["image"]
        if not file:
        	print("파일 첨부 오류")
        elif not allowed_file(file.filename):
        	print("허용되지 않는 파일")
        else:
            filename = "{}_{}.jpg".format(str(int(datetime.now().timestamp()) * 1000), rand_generator())
            savefilepath = os.path.join(app.config["BOARD_IMAGE_PATH"], filename)
            file.save(savefilepath)
            return url_for("board.board_images", filename=filename)

예를 들어 위 코드에서 처럼 각 구간에 print() 문을 사용하여 어떤 분기에서 문제가 생기는지 원인의 범위를 점점 좁혀나가보면 정확이 뭐가 문제인지 알 수 있을꺼라 생각됩니다.

0

레벨1님의 프로필

레벨1

질문자

2020.04.22

확인해본결과 png파일에서만 에러가 발생하는것을 확인하였습니다 

테스트는 jpg와  png파일만 확인을 하였는데 jpg파일은 

문제가 없이 올라가는데 png파일을 업로드시 에러가 발생합니다.

0

말씀하신 내용만으로는 제가 알 수 있는 내용이 별로 없어 도움을 드리기가 힘듭니다.

오류 내용만 봐서는 뷰함수가 유요한 응답처리를 리턴하지 않았다는 내용입니다. 업로드 처리를 하는 함수를 잘못 작성하신건지 아니면 글 작성 폼에 문제가 있는건지는 위의 내용만 봐서는 알 수가 없습니다. 어쨌든 뷰함수가 정상적인 리턴을 하지 않아서 생기는 문제로 보입니다. 뷰함수는 일반적으로 @app.route() 로 선언되는 함수를 뷰함수라고 보시면 됩니다.

그리고 autoescape false는 데이터를 직접 건드리는게 아니라 태그가 포함된 내용을 보여줄때 이를 생략하는 기능입니다. 글 수정을 적을때 P 태그가 나온다는게 상황만 봐서는 어떤 상황인지 모르겠습니다. 상세보기 페이지에서만 안나오면 되는겁니다. 실제 데이터에는 태그가 정상적으로 포함되어있는게 맞습니다.