본문 바로가기
개발/python, python frameworks

python(flask)에서 DTO 활용하기(예제)

by 개발자종혁 2020. 4. 3.
728x90

python은 기본적으로 type이 strict하지 않다.

따라서 parameter나 argument에 사용하는 type이 무엇인지 알수가 없기 때문에 DTO를 쓰면 데이터의 흐름을 보기가 힘든 단점이 있다.

 

 

그러나 python은 3.5 ~ 3.8 을 거치며 최신 파이썬은 argument의 type을 보일 수 있게 되었다.

(또한 아래와 같이 argument에 정의한 class를 사용 가능하다.)

 

from flask import jsonify
from flask_wtf import FlaskForm
from wtforms import StringField


app = Flask(__name__)

class NumberExampleForm(FlaskForm):
    class Meta:
        csrf = False

    first_number = StringField('first_number')
    second_number = StringField('second_number')
    
 
def add_two(form: NumberExampleForm):
	return int(form.first_number.data) + int(form.second_number.data)


@app.route('/print_date', methods=['POST'])
def search_by_time():
   
    # 로그
    form = NumberExampleForm()
    if form.validate():
		return add_two(form)
    else:
    	return jsonify(form.errors)
        

 

파이썬 자바스크립트와 같은 타입이 strict하지 않은 언어는 서비스의 규모가 커지며 왔다갔다하는 data의 형태를 알기 어려워지는 경향이 잇다.

그래서 최신 파이썬과, 타입스크립트를 사용하여 언어의 한계를 극복할 수 있다.

728x90

'개발 > python, python frameworks' 카테고리의 다른 글

PyInstaller shell 없애기  (0) 2020.04.21
AES256/ base64 암호화 with python  (0) 2020.03.30
카카오 로그인 (python에 붙이기)  (0) 2020.03.23
python flask - blueprint  (0) 2020.03.12

댓글