micromongo

소프트웨어 스크린 샷:
micromongo
소프트웨어 정보:
버전: 0.1.4
업로드 날짜: 14 Apr 15
개발자: Jason Moiron
라이센스: 무료
인기: 2

Rating: nan/5 (Total Votes: 0)

micromongo는, 유효성 검사를 수행 문서, 자동 랩는 QuerySet 결과에 도트 액세스를 허용하고, 당신에게 후크 저장 전 / 후를 줄 수있는 간단한 ORM 스타일 클래스를 만들 수 있습니다 pymongo 주위에 작은 층이다.
그것은 마음에 microframeworks 설계,하지만 응용 프로그램과 프레임 워크 불가지론입니다. 이 pymongo의 사용을 단순화하고 일반적인 숙어위한 도구를 제공, 데이터 구조에서 pymongo 또는 MongoDB의를 모호하게하지하기위한 것입니다.
당신은 문제를 열​​거 나 micromongo의 GitHub의에 오기 요청을 보내에 오신 것을 환영합니다
micromongo 당신을 위해 작동하지 않을 수 있습니다 단순화의 이름으로 몇 가지 디자인을 결정한다 :
& NBSP -, NBSP; micromongo는 하나의 글로벌 연결을 유지, 그래서 당신은 여러 MongoDB의 서버에 연결 모델을 가질 수 없습니다
& NBSP -, NBSP; 모델 이름 및 micromongo 모델과 함께 작동하지 않습니다 문서 속성 이름의 handfull입니다있다; 다음은 전체 문서에 적용됩니다
& NBSP -, NBSP; 당신은 단지 모음 당 하나의 모델을 가질 수있다
시작
micromongo으로 시작하려면 그냥 가져옵니다
>>> micromongo 가져 오기 연결에서, 모델
>>>의 C =)는 (연결
연결은 pymongo의 연결 개체와 같은 인수를하고, 자동으로 해당 모델 클래스에 싸여 쿼리 결과를 반환하려고 시도하는 것을 제외하고 거의 동일하게 동작합니다. 당신은 깨끗하고, 표준 연결 개체를 원하는 경우이 호출을 통해 생성 연결 개체 캐시와 다양한 ORM 스타일의 시설로 사용됩니다 등 Model.save (), Model.proxy처럼, 당신은 쉽게 하나를 얻을 수 있습니다 :
>>> micromongo 수입 clean_connection에서
>>> 깨끗한 = clean_connection ()
인수를하지 않는 clean_connection을 참고 항상 현재 micromongo 연결과 같은 설정으로 깨끗한 연결 클래스를 반환합니다.
이러한 연결 개체를 사용하면 데이터베이스를 만들거나 정상 pymongo 객체와 당신이 무엇하고자 할 :
>>> dB = c.test_db
>>> 수집 = db.test_collection
>>> collection.save는 ({ "DOCID": 1, "실패"거짓})
>>> collection.find_one ()
{u'_id 'ObjectId가 ('... '), u'fail'거짓, u'docid ': 1}
당신은 또한 선언적 스타일의 특정 모음에 대한 자신의 모델을 선언 할 수 있습니다 :
>>> 클래스 TestModel (모델) :
& NBSP; & NBSP; & nbsp; & nbsp; 확인 & NBSP; & nbsp; & nbsp; 확인 수집 = 'test_db.test_collection'
>>> collection.find_one ()

이러한 클래스는 그들이 훨씬 더 편리하게 사용할 수있는 사전 위에 추가적인 특징을 갖는다. 문서 키는 속성과 출입하실 수 있습니다 :
>>> t = collection.find_one ()
>>> t.fail
그릇된
>>> t.docid
(1)
문서는 쉽게 데이터베이스에 유지됩니다 :
>>> t.docid = 17
>>> t.save ()
>>> clean.test_db.test_collection.find_one ()
{u'_id 'ObjectId가 ('... '), u'fail'거짓, u'docid ': 17}
모델을 정의
위, 컬렉션 속성은 우리의 푸 모델에 할당되었다. 하지만 이것은 바로 가기이었다; 데이터베이스 및 수집 별도로 지정된 경우, 모델은 전체 모음 이름을 알아낼 수 있습니다. 수집 및 데이터베이스가 존재하지 않는 경우, micromongo는 모델의 클래스와 모듈 이름을 기반으로 그것을 알아 내려고 시도합니다. 예를 들어, blog.Post는 blog.post 될 것이다, 또는 stream.StreamEntry는 stream.stream_entry 될 것입니다. 노골적인 암시보다 낫다, 그것을 당신이 수동으로 수집을 설정하는 것이 권장합니다.
포장 및 데이터베이스에서 결과를 풀고 외에도 모델은 기본값을 정의하고 모델을 저장하기 전에 유효성 검사를 수행 할 수있는 사양 문서를 정의 할 수 있습니다. 사소한 블로그 게시물 모델을 가지고 :
>>> micromongo.spec 수입에서 *
>>> 클래스 포스트 (모델) :
& NBSP; & NBSP; & nbsp; & nbsp; 확인 & NBSP; & nbsp; & nbsp; 확인 수집 = 'test_db.blog_posts'
& NBSP; & NBSP; & nbsp; & nbsp; 확인 & NBSP; & nbsp; & nbsp; 확인 사양 = DICT (
& NBSP; & NBSP; & NBSP; & nbsp; & nbsp; 확인 & NBSP; & nbsp; & nbsp; 확인 & NBSP; & nbsp; & nbsp; 확인 저자는 필드 (= 사실, 기본 = 'jmoiron', 유형 = basestring 필요) =
& NBSP; & NBSP; & NBSP; & nbsp; & nbsp; 확인 & NBSP; & nbsp; & nbsp; 확인 & NBSP; & nbsp; & nbsp; 확인 제목 = 필드 (필수 = 거짓, 기본 = '', 유형 = basestring)
& NBSP; & NBSP; & NBSP; & nbsp; & nbsp; 확인 & NBSP; & nbsp; & nbsp; 확인 & NBSP; & nbsp; & nbsp; 확인 출판 = 필드 (= 필요 사실, 기본 = 거짓, 유형 = [참, 거짓),
& NBSP; & NBSP; & NBSP; & nbsp; & nbsp; 확인 & NBSP; & nbsp; & nbsp; 확인 & NBSP; & nbsp; & nbsp; 확인 몸 = 필드 (유형 = 유니 코드)
& NBSP; & NBSP; & NBSP; & nbsp; & nbsp; 확인 & NBSP; & nbsp; & nbsp; 확인 & NBSP; & nbsp; & nbsp; 확인 타임 스탬프 = 필드 ()
& NBSP; & NBSP; & nbsp; & nbsp; 확인 & NBSP; & nbsp; & nbsp; 확인 )
>>> P = Post.new ()
>>> 페이지
<글 : { '제목'유 ','저자 '': u'jmoiron을 ','출판 '거짓}>
몇 가지가 여기에 갈 수 있습니다. 기본이 필드는 필요 여부와 그 기본값으로 초기화됩니다. 필수 필드는 기본값이없는 경우, 초기화 중에있다.
필드 중 하나 이상의 기본 유형, 또는 하나 이상의 값을 값을 받아 True 또는 False를 반환 호출 될 수있는 형식 인수를 취할 수 있습니다. 하나 이상의 유형이 제공된다면, isinstance 값이 적당한 유형 것을 테스트하기 위해 사용된다. 하나 이상의 값이 제공되는 경우,이 필드의 값이 그 값의 세트에 있는지 점검 열거 형로서 작용한다. 어떤 유형을 지정하지 않으면이 필요하고 존재하지 않는 한, 검증은 항상 필드에 전달합니다.
P의 필드가 유효하지 않은 유형을 지정되었을 경우, ValueError를 제기한다 :
>>> p.title = 10
>>> p.save ()
역 추적 (가장 최근 통화 마지막) :
& NBSP; ...
은 ValueError : 키 사양과 일치하지 않습니다 : [ '제목']
>>> 델 p.author
>>> p.save ()
역 추적 (가장 최근 통화 마지막) :
& NBSP; ...
은 ValueError : 필드 누락 : [ '저자'], 잘못된 필드 : [ '제목']
>>> p.title = '내 첫 블로그 게시물'
>>> p.author = 'jmoiron'
>>> p.published = TRUE
>>> p.body는 = u는 "이것은 내 첫 블로그 게시물 .. & NBSP하니 내가 너무 흥분!"
>>> p.save ()
Model.find
편리함과 건성, Model.find 오른쪽 수집에 대한 발견을 발행 micromongo의 커서를 사용합니다 classmethod입니다. 이 방법은 정확하게 pymongo의 Collection.find와 동일하게 동작합니다.
micromongo의 약간 수정 커서 클래스는 모든 커서 (발견하고 커서를 반환하는 경우 아무것도 오프 체인)에 사용할 수있는 장고 영감을 order_by 방법을 만든다. 선택 사양 인 선도로, 하나 이상의 필드 이름을 전달할 수 있습니다 '-', 오름차순 또는 내림차순으로 일을 정렬합니다.
이러한 변화는 당신이 그것을 가져올 필요없이 pymongo의 힘의 대부분을 사용할 수 있도록, 당신이 당신의 데이터의 위치의 불필요한 반복을 피하기 수 있습니다.
필드 서브 클래 싱
당신은 당신이 원하는 일을 자신의 필드를 작성하는 것이 좋습니다. 필드의 서브 클래스는 들어오는 값을 가지고 자신이 원하는 그러나 그것을 변환 할 수있는 후크 기능 pre_validate 있습니다. 필드가 실제로 존재하는 경우에만 동작합니다; 그래서 DateTimeField에 auto_now_add 같은 것을 얻기 위해, 당신이 필요하며 그 pre_validate가) (datetime.datetime.now에 없음을 돌리지이 확인하는 것이 좋습니다

이 요구 사항 : 있습니다.

파이썬

유사한 소프트웨어

Tiote
Tiote

14 Apr 15

db4o
db4o

12 May 15

개발자의 기타 소프트웨어 Jason Moiron

speedparser
speedparser

14 Apr 15

pdf2zip
pdf2zip

11 May 15

redtape
redtape

14 Apr 15

코멘트 micromongo

댓글을 찾을 수 없습니다
코멘트를 추가
이미지를 켜십시오!