새벽_나그네
12시 지난 새벽
새벽_나그네
전체 방문자
오늘
어제
  • 분류 전체보기
    • TIL
    • DevLog
    • Algorithm
    • ComputerScience
    • etc

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Selenium 4
  • 내일배움캠프
  • 국비지원
  • 자기주도학습
  • 내일배움단
  • Python
  • 코딩
  • Github
  • 프로그래머스
  • docker
  • portfolio
  • TodayILearned
  • 개발일지
  • 코린이
  • 스파르타코딩클럽
  • AI트랙
  • machine learning
  • til
  • 내일배움카드
  • 코딩프로젝트

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
새벽_나그네

12시 지난 새벽

TIL

1-16[Ajax, formData] Ajax를 이용한 이미지 데이터 전송

2022. 1. 16. 23:44

오늘 할 일 (계획)

1. 머신러닝 프로젝트

 

2. Django 강의 시작

 

오늘 한 일 (회고)

1.  머신러닝 프로젝트

- Teachable machine 기반의 프로젝트 구조를 개조

- 프론트엔드에서 모든 것을 작업하던 구조에서 백엔드에서 모델을 불러오는 구조로 변경

- ajax 클라이언트 부분에서 이미지 데이터 보내지 못한 것 해결 formdata 이용

- server에서 모델 predict처리 후 json형식이 아니어서 보내지 못한 것 해결

pred_json = pd.Series(pred[0]).to_json(orient='values')

2. 생활 코딩 강의 학습 일시 중단

 

* form data를 이용한 ajax 통신 요약

 

async function predict() {
    // 파일의 인풋값을 #file-input에서 받아서 저장
    let fileInput = $('#file-input')[0].files[0]
    // form_data를 생성
    let form_data = new FormData();
    // append로 붙여서 전송 준비 키값은 file_give
    await form_data.append("file_give", fileInput)

    $.ajax({
        type: "POST",
        url: "/api/predict",
        // url 값이 같은 곳과 POST ajax 통신
        data: form_data,
        cache: false,
        contentType: false,
        processData: false,
        // data, cache, contentType, processData 설정 중요
        success: function (response) {

async, await를 이용하여 동기식으로 구성한점과 type url data cache contentType processData 설정등을 유심히 볼 필요가 있음

@app.route('/api/predict', methods=['POST'])
def give_model():
    try:
        # 디렉토리를 검색하여 값이 있을시 지우는 조건문
        if os.path.exists(f'static/img/pokemon/'):
            for file in os.scandir(f'static/img/pokemon/'):
                os.remove(file.path)
    except:
        return

    else:
        # try except은 try가 잘돌아가면 else를 실행
        # request 문으로 file_give키로 되어있는 값을 받아옴
        file = request.files['file_give']

서버단에서는 받아온 form data를 이용하는데 예제에서 사용한 방식을 거의 사용하지만 디렉토리에 값이 있을때 비우고 시작하게 하여서 똑같은 값이 계속 나오는 문제를 해결함 

 

nmdkims/16team_pokeman_AI (github.com)

 

GitHub - nmdkims/16team_pokeman_AI

Contribute to nmdkims/16team_pokeman_AI development by creating an account on GitHub.

github.com

내일 할 일

1. 머신러닝 프로젝트 - 마무리 작업

 

2. Django 강의 시작

저작자표시 비영리 변경금지 (새창열림)

'TIL' 카테고리의 다른 글

1-18[Project] 머신러닝 프로젝트 배포, SRC 질문 답변  (0) 2022.01.18
1-17[Project] 머신러닝 프로젝트 마무리  (0) 2022.01.17
1-15[Lecture] 생활코딩 장고 강의 학습  (0) 2022.01.15
1-14[Crawling, Selenium, Kaggle] Kaggle에 데이터 올리기, Selenium 이미지 스크래핑  (0) 2022.01.14
1-13[Project] Tensor flow 작업 환경 구성  (0) 2022.01.13
    'TIL' 카테고리의 다른 글
    • 1-18[Project] 머신러닝 프로젝트 배포, SRC 질문 답변
    • 1-17[Project] 머신러닝 프로젝트 마무리
    • 1-15[Lecture] 생활코딩 장고 강의 학습
    • 1-14[Crawling, Selenium, Kaggle] Kaggle에 데이터 올리기, Selenium 이미지 스크래핑
    새벽_나그네
    새벽_나그네
    IT, 프로그래밍, 정보, 스마트스토어

    티스토리툴바