티스토리 뷰
동기
STAC 대회에 내보낼 프로젝트의 API 서버를 짜려고 flask를 배우던 중에 Route의 HTTP CRUD 처리가 가독성이 좋지 않아보였고 파이썬에는 Switch가 없어서 나만의 방식으로 바꿔보기로 함
구현
'Python Switch'를 구글링 해보던 중에 dict로 Switch를 비슷하게 구현할 수 있다는 걸 발견, 이거다! 하고 이용함
내눈에는 가독성이 더 좋아보이게 됐는데 사람마다 달라보일 수도 있음
소스
기존 코드 (if, elif 문 사용)
@app.route('/user', methods=['GET', 'POST'])
def user():
if request.method == 'POST':
return 'post', status.HTTP_201_CREATED
elif request.method == 'GET':
return 'get', status.HTTP_200_OK
바뀐 코드 (dict와 function 사용)
@app.route('/user', methods=['GET', 'POST'])
def user():
def create_user():
return 'post', status.HTTP_201_CREATED
def get_user():
return 'get', status.HTTP_200_OK
response = {
'GET': get_user,
'POST': create_user
}
return response.get(request.method)()
# or return {'GET': get_user, 'POST': create_user}.get(request.method)()
'Programming > Python' 카테고리의 다른 글
[Python/flask] Restful API 서버 뼈대 (0) | 2017.01.17 |
---|---|
[Python/flask] Query 질의문 생성 헬퍼 (0) | 2016.07.28 |
댓글
댓글펼치기