def kfqgo(): if request.method == 'GET': # request 객체는 1번 모듈에서 땡겨야 사용할 수 있다.(get을 request 요청하는 조건문) # 기본으로 templates 폴더 밑에서 찾는다 return render_template('index.html') else: # 여기는 post방식으로 데이터가 요청되었을 때 처리 # 서비스 : 데이터를 획득 -> 백터화 -> 모델을 로드(서버가동시 1회만) # -> 답안을 획득 -> 응답 구성 # 데이터 획득 (모든 데이터는 요청객체를 받고 들어온다(request)) #a = request.form['inputLang'] # 딕셔너리 구조임 # flask에서 post 방식 check_text = request.form.get( 'inputLang') # 키가 틀려도 None으로 처리, 별개로 a번 죽이고 check_text번으로 사용한다 nation, lang_ko = detect_lang(check_text) #판정 # 번역 요청 transText = lang_transByPapago(check_text, nation) if transText: # 번역이 되었다면 !! transText = transText['message']['result']['translatedText'] else: transText = '번역실패' # 1. 파파고 번역으로 연동(통신) # 2. 응답 -> 로그 처리(디비 저장) -> AJAX응답 insertData(src=check_text, out=transText, slang=nation, olang='ko') return jsonify({'code': nation, 'ko': lang_ko, 'trans': transText})
def kfqgo(): if request.method == 'GET': # 기본으로 templates 폴더 밑에서 찾는다 return render_template('index.html') else: # post 방식으로 요청되었을 때 처리 # 서버: 데이터를 획득 => 백터화 => 모델을 로드(서버가동시1회만) => 예측 => 답안획득 => 응답구성 # post 방식 1. 데이터 획득 # b방식을 더 선호 #a = request.form['inputLang'] # 키 값이 오류가 날 경우 오류가남 check_text = request.form.get('inputLang') # 키가 틀려도 None으로 처리 nation, lang_ko = detect_lang(check_text) # 판정 return jsonify({'code': nation, 'ko': lang_ko})
def kfqgo(): # 기본적으로 templates 폴더 밑에서 찾는다 if request.method == 'GET': return render_template('index.html') else: # post 방식으로 요청되었을때 # 서:데이터를획득 => 백터화 => 모델을 로드(서버가동시1회만) => 예측 => 답안획득 => 응답구성 # 데이터 획득 # 딕셔너리로 획득 # a = request.form['inputLang'] # 이 방식은 키가 틀리면 죽음 check_text = request.form.get('inputLang') # 이 방식은 키가 틀리면 None으로 처리 nation, lang_ko = detect_lang(check_text) # 판정 return jsonify({'code': nation, 'ko': lang_ko})
def langTypeDetect(): if request.method == 'POST': # 1. 원문 데이터 획득 (get, post 방식으로 전달된 데이터 획득) oriTxt = request.form.get('ori') # 500 error, Intenal server error # => 그래서! .get 함수를 통해 잘못되도 None을 리턴하도록..! # 위에 대한 방어코드 if not oriTxt: return {'code': 0, 'lang': '', 'desc': '원문데이터 누락'} # 2. 언어감지 lang, desc = detect_lang(oriTxt) # 2-1. 디비에 로그처리 # 3. 응답 return {'code': 1, 'lang': lang, 'desc': desc} else: # GET return render_template('index.html')
def devgo() : if request.method == 'GET' : # 기본으로 templates 폴더 밑에서 찾는다 return render_template('index.html') else : # post방식으로 요청되었을 때 처리 # (서버) 데이터를 획득 → 벡터화 → 모델을 로드(서버 가동 시 1회만) → 예측 → 답안 획득 → 응답 구성 # 1. 데이터 획득 (딕셔너리로) # check_text = request.form['inputLang'] check_text = request.form.get('inputLang') # 위 방식보다 더 선호 : 키가 틀려도 None으로 처리 nation, lang_ko = detect_lang( check_text ) # 판정 # 1. 번역 요청 → 파파고 번역과 연동(통신) transText = lang_transByPapago( check_text, nation ) ''' [응답 형식] { "message": { "@type": "response", "@service": "naverservice.nmt.proxy", "@version": "1.0.0", "result": { "srcLangType":"ko", "tarLangType":"en", "translatedText": "tea" } } } ''' if transText : # 번역 성공 시 transText = transText['message']['result']['translatedText'] else : transText = '번역 실패' # 2. 로그 처리(DB 저장) insertData( src = check_text, out = transText, slang = nation, olang = 'ko' ) return jsonify( { 'code' : nation, 'ko' : lang_ko, 'trans' : transText } )