SSAMKO의 개발 이야기

[flask]DB ORM을 위한 라이브러리 sqlacodgen, pymongo 본문

Python

[flask]DB ORM을 위한 라이브러리 sqlacodgen, pymongo

SSAMKO 2020. 12. 21. 19:50
반응형

python으로 손쉽게 API서버를 만들기 위해서 주로 flask를 많이 사용합니다.

 

 

플라스크 (웹 프레임워크) - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전.

ko.wikipedia.org

좀 더 큰 규모의 백엔드 서버를 위해서는 당연 django를 사용해야겠지만,

가벼운 API 몇 개만 운영하고자 할 때는 flask처럼 간편한 framework가 없습니다.

 

 

 

장고 (웹 프레임워크) - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 다른 뜻에 대해서는 장고 문서를 참조하십시오. 장고(Django, FAQ 발음으로는 "쟁고"(IPA: [ˈdʒæŋgoʊ])[2])는 파이썬으로 작성된 오픈 소스 웹 프레임워크로, 모델-

ko.wikipedia.org

flask를 API서버로 사용하면서 DB를 다룰때 주로 사용하는 두 라이브러리를 소개합니다.

 

flask-sqlacodegenflask-pymongo인데요. 둘 다, sqlacodegen과 pymongo를 fork하여 대부분의 사용법이 비슷하며 다만 웹 혹은 flask서버를 위한 몇가지 추가적인 기능들이 있습니다.

 

DB가 SQL이라면 flask-sqlacodegen을 사용하시면, django에서 DB ORM을 사용하는 것처럼 편하게 DB를 이용할 수 있습니다.

 

하지만, 역시 flask에 가장 알맞은 DB는 NoSQL DB인 mongoDB라고 생각합니다.

mongoDB는 query자체가 ORM으로 되어 있기 때문에 flask-pymongo를 통해 손쉽게 DB를 이용할 수 있습니다.

 

간단한 api서버 구축을 위한 프레임워크와 DB를 고민하고 계신다면, 

flaskmongoDB의 조합을 추천합니다.

 

pymongo vs flask-pymongo

이 두 라이브러리를 비교하자면, 일단 위에 언급했다시피 대부분의 기능은 동일합니다.

다만, pymongo에 find() 함수가 있다면, flask-pymongo에서는 find_or_404() 처럼 서버를 위한 함수들이 추가되어 있습니다.

이런 함수들은 try-except문을 사용하거나 따로 404page를 return하지 않아도 되기때문에 코드를 훨씬 빠르고 깔끔하게 짤 수 있습니다.

따라서, pymongo를 사용해도 서버 운영에는 문제가 없지만 더 빠르고 깔끔한 code를 위해서는 flask-pymongo의 사용을 추천합니다.

 

반응형
Comments