저는 Flask와 MongoDB를 사용하여 파이썬으로 webapp을 작성하려고합니다 (그리고 아마도 Ming as ODM). 문제는 필자의 모델과 컨트롤러를 정말 잘 분리하고 싶기 때문에 별도의 구성 요소에서 간단한 단위 테스트를 실행할 수있는 한 가지 이유가 있습니다.테스트 가능한 방식으로 mongodb에 연결하기
이제 MongoDB에 연결해야하는 요청주기의 어느 시점에서 문제가 발생했습니다. 각 요청에는 별도의 연결이 있습니다. 플라스크는 요청에 글로벌 인 모든 변수를 포함 할 수있는 스레드 로컬 객체를 제공합니다. 이것은 몽고 연결을 설정하는 데 좋은 장소 인 것 같습니다. 그러나 이렇게하면 데이터 영역과 Flask간에 딱딱한 종속성이 생기므로이를 테스트하거나 별도로 실행하는 것이 어렵습니다.
내 질문은 정말 거기에 우아한 솔루션이 있는지 여부입니다. 나는 몇 가지 옵션을 스스로 고안했지만, 그들은 우아한 것과는 거리가 멀다.
먼저 데이터 모듈에 연결 개체를 가져올 위치를 알려주는 함수를 제공 할 수 있습니다. 또는 비슷한 방법으로 새 연결을 가져 오는 데 사용할 수있는 함수를 전달하십시오.
두 번째 옵션은 모듈이 MongoDB에 연결하기 위해 사용할 수있는 클래스를 만든 다음 Flask의 전역 개체를 사용하는 버전과 MongoDB에 연결하는 두 가지 버전을 만드는 것입니다.
이 두 가지 모두 나에게 정말 강력하거나 우아하지는 않지만,이 방법을 더 잘 활용할 수 있습니까?
하지만이 정말 아직도 오른쪽의 app.config에 대한 술병을 필요로한다는 의미에서 플라스크에서 모델을 분리하지 않습니다 같은 모델 뭔가를 사용할 수 있습니까? – Blubber
app.config는 사용자가 볼 수있는 것처럼 DB_NAME을 가져 오는 데 사용됩니다. 원한다면 당신은 그것의 탈을 얻을 수 있습니다. – sojin