sourcetip

Mongo DB 및 Django와 함께 사용해야 하는 Python API

fileupload 2023. 5. 18. 21:26
반응형

Mongo DB 및 Django와 함께 사용해야 하는 Python API

저는 Mongo와 상호작용할 때 어떤 Python API를 사용할지에 대해 왔다 갔다 했습니다.저는 그 풍경을 간단히 조사했고 유력한 후보 세 명을 알아냈습니다.

장고 프레임워크를 사용하여 새로운 콘텐츠가 많은 웹 사이트를 설계하고 있다면 어떤 API를 선택하고 그 이유는 무엇입니까?

Mongo Engine은 특별히 Django를 염두에 두고 제작된 것처럼 보입니다.PyMongo는 Mongo 주변의 얇은 포장지로 보입니다.장고를 프레임워크로 사용하여 얻은 추상성을 많이 잃지만 많은 힘을 가지고 있습니다.Ming은 PyMongo와 MongoEngine 사이의 흥미로운 중간 지점을 대표하지만, 저는 그것을 시승할 기회가 없었습니다.

Mike가 말했듯이, 당신은 PyMongo를 피할 수 없습니다. 다른 모든 인터페이스는 PyMongo 위에 구축됩니다.이러한 다른 인터페이스는 거의 틀림없이 필요하지 않습니다.Django에서 사용되는 ORM은 SQL 쿼리 및 스키마를 만들고 결과 집합을 개체로 구문 분석하는 복잡성을 완화하기 때문에 SQL을 처리할 때 유용합니다.

그러나 PyMongo는 이미 그것을 다룹니다. 쿼리는 편리하고 간단한 API를 거치고 MongoDB에서 오는 결과는 정의상 이미 객체(파이썬에서의 딕트 - 동일한 차이)입니다.만약 당신이 정말로 당신의 Mongo 문서를 Python 객체로 장식할 필요가 있다고 느낀다면, PyMongo에 SON 조작기를 추가하는 것은 쉽습니다.이 접근 방식의 좋은 점은 코드를 PyMongo에 직접 작성하고 나중에 코드와 PyMongo 사이에 새로운 API를 삽입하지 않고도 추가 기능을 슬라이드할 수 있다는 것입니다.

뭐가 남았습니까?스키마 생성 및 마이그레이션은 어느 정도 유용하지만 거의 임시로 수행됩니다. MongoDB를 사용할 경우 기존 SQL 스타일 모델에서 탈피하고 싶을 가능성이 높습니다.또한 완전한 장고 호환 MongoDB ORM이 있다면 마일리지를 얻을 수 있을 것입니다.그보다 더 적은 것이 있다면 당신은 아마도 스스로 일을 만들어 낼 것입니다.

PyMongo를 직접 사용한 것을 후회하지 않을 것입니다.

최고의 효율성에 관심이 있다면 볼만한 마지막 옵션은 PyMongo의 비동기 버전입니다. 여기: http://github.com/fiorix/mongo-async-python-driver

저는 Mongokit와 함께 일해왔습니다.지금까지 좋아요.

장고와 통합할 때 참고한 블로그 글입니다.

Mongo Engine과 Ming 모두 PyMongo에 의존합니다. 그들은 단지 그 위에 몇 가지 멋진 기능을 추가했을 뿐입니다.저는 적어도 PyMongo와 직접 시작하는 것을 추천합니다. 그렇게 하면 다른 도구 중 하나를 사용하기로 결정하고 문제가 발생하면 "후드 아래"에서 무슨 일이 일어나고 있는지 쉽게 이해할 수 있을 것입니다.그렇긴 하지만, 저는 편견이 심합니다 ;).

장고-몽고-엔진을 사용해 볼 수도 있습니다.Django-nonrel의 백엔드이므로 Django의 모델과 ORM을 계속 사용할 수 있습니다.그러나 다른 API만큼 완전하지는 않습니다. http://www.allbuttonspressed.com/blog/django/2010/05/MongoDB-backend-for-Django-nonrel-released

방금 '마이크로몽고'를 찾았습니다.

http://packages.python.org/micromongo/

방해하지 않고 피몽고 위에 유용한 것을 충분히 추가하는 것처럼 보입니다.

몽고드브 공식 문서에는 쫑고에 대한 내용이 나와 있습니다.SQL 쿼리를 mongodb 쿼리로 변환하여 작동합니다.

당신은 그것을 운영하기 위해 장고-논렐이 필요하지 않습니다.

모든 네이티브 장고 기여 모듈(예: 관리자, 사용자, 세션)은 수정 없이 작동합니다.

MongoEngine은 기여 모듈을 다시 작성해야 하며 마지막으로 확인한 결과 MongoEngine에서 네이티브 관리 모듈이 실행되지 않았습니다.

기존 모델도 ORM 변환 없이 실행됩니다.

언급URL : https://stackoverflow.com/questions/2740837/which-python-api-should-be-used-with-mongo-db-and-django

반응형