기본적으로 Flask 응용 프로그램 (REST API 용)과 비 Flask API 사이에서 최대한 많은 데이터베이스 계층 코드를 공유하려고합니다.Flask와 Flask가 아닌 프로그램에서 동일한 데이터베이스 추상화 사용
pure Python API (웹 Python이 아닌 응용 프로그램에서 가져 오기 위해 사용됨)와 REST API Flask 데몬 모두에서 동일한 Flask-SQLAlchemy 계층을 사용하는 것이 좋습니다.
"나는 Flask 응용 프로그램과 별도의 Python 가져 오기 라이브러리간에 데이터베이스 모델을 가장 잘 공유하려면 어떻게해야합니까?"라는 문구는 다른 구문으로 추측합니다.
또는 가져 오기 라이브러리와 SQL 추상화를 공유하려는 경우 Flask REST API에 Flask-SQLAlchemy을 사용하는 데있어 다른 점도 있습니다. 일반 SQLAlchemy을 사용하는 것이 더 좋습니까?
사용 사례 : 우리는 많은 테이블이 큰 데이터베이스를 가지고 있고, 데이터베이스에 액세스하기위한 (고객 액세스 용) REST API와 (확대됨에 내부 도구) 파이썬 가져 오기 라이브러리를 모두 구축하고자하지만,의 물론 그들 사이에 많은 코드를 공유 할 수 있습니다.
관련 :
- Using Flask-SQLAlchemy in Blueprint models without reference to the app
- What's your folder layout for a Flask app divided in modules? 웹 문맥
- SQLAlchemy with Flask -- hybrid models?
Flask-SQLAlchemy
모델을 사용
세 가지 선택이 있습니다. 1. Flask-SQLAlchemy를 사용하여 데이터베이스 계층을 설정하고 Flask 응용 프로그램 컨텍스트를 라이브러리의 일부로 사용하십시오. 2.) 두 개의 코드베이스 (Flask와 Flask가 아닌)를 만듭니다. 3.) 공통 라이브러리를 만들지 만, 라이브러리를 사용하려면 SQLAlchemy 세션을 의존성 삽입 (dependency injection)과 같은 방식으로 전달해야합니다. Flask 프로세스에서 Flask 앱 컨텍스트를 사용하여 라이브러리를 초기화합니다. 그렇지 않으면, 다른 프로그램에서 SQLA 세션을 설정하십시오. 다음 세 가지 방법 중 어느 것을 선택하면 환경에 매우 특정한 것인지 알 수 있으므로 "올바른"대답은 없습니다. –